function solution(k, tangerine) {
let sizes = {};
for(let i=0; i<tangerine.length; i++){
sizes[tangerine[i]] = sizes[tangerine[i]]+1 || 1
}
const sizesArr = Object.entries(sizes).sort((a,b) => a[1] - b[1]);
let cnt = 0;
while(k>0){
k = k - sizesArr[sizesArr.length-1][1];
cnt++;
sizesArr.pop();
}
return cnt++;
}
설명
tangerine을 반복문을 돌려 각 무게당 몇 개가 있는지 sizes 객체에 전달한다.sizes를 Object.entries와 sort를 통해 개수 순으로 오름차 순 정렬을 한 배열 sizeArr을 생성한다.k가 0이하가 될 때까지 뒤에서부터 (귤의 개수가 많은 순으로) k - 무게별 개수를 실행하고 cnt의 값을 1씩 추가, 그리고 반복문이 끝나기 전 배열의 맨 마지막 요소를 삭제한다.