본문 바로가기
Algorithm

[JavaScript] 프로그래머스 - 귤 고르기

by 랩린안 2023. 1. 4.
/*
문제 : 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 구하라
자료 : 귤 배열 tangerine, 팔고싶은 귤 갯수 K
조건 :
계획 :
서로 다른 종류가 가장 적을 때여야 한다. 그럼 가장 적은 수를 먼저 뺴고,
그 다음 적은 수를 빼서
팔고 싶은 갯수를 맞추면 되지 않을까??
*/
function solution(k, tangerine) {
  const result = {};

  tangerine.forEach((x) => { 
    result[x] = (result[x] || 0)+1; 
  })

  const result2 = Object.values(result).sort((a, b) => b - a);

  let count = 0;
  let sum = 0;
  
  for (let i = 0; i < result2.length; i++) {
    count++;
    sum += result2[i];
    
    if (sum >= k) break;
  }

  return count;
}