function solution(k, tangerine) {
// ✅ { 귤의 크기: 해당 크기 귤의 개수 }
let info = {};
tangerine.forEach(el => info[el] = (info[el] || 0) + 1);
const arr = Object.entries(info).sort((a, b) => b[1] - a[1]);
// ✅ std(귤 개수를 저장하는 임시 변수), answer(최소 귤 종류 개수)
let [std, answer] = [0, 0];
for (let i = 0; i < arr.length; i++) {
std += arr[i][1];
if (std < k) {
// ✅ 포장한 귤의 개수 < k 인 경우) 귤 종류를 하나 늘린다
answer += 1;
} else {
// ✅ 포장한 귤의 개수 >= k 인 경우) 귤 종류를 하나 늘리고 리턴한다
return answer + 1;
}
}
}
입력값의 제한은 다음과 같다.
배열 tangerine에 대한 이중 for문의 사용은 피해야 겠다고 생각했다.