function solution(k, tangerine) {
const cntArr = Array(Math.max(...tangerine) + 1).fill(0);
for (let i = 0; i < tangerine.length; i++) {
cntArr[tangerine[i]]++;
};
cntArr.sort((a, b) => b - a);
let idx = 0;
while (k > 0) {
if (cntArr[idx] === 0) {
idx++;
};
cntArr[idx]--;
k--;
}
return idx + 1
}
먼저 cntArr를 만듭니다
예를 들어 제일 큰 숫자가 5이면 길이가 6인 Array를 생성해줍니다.
cntArr를 거꾸로 정렬해줍니다.
굳이 어떤 숫자가 몇 개 였는지를 기억할 필요가 없습니다. 그저 몇 개가 있었는지만 알아낸 뒤 큰 숫자부터 줄여나가면 되기 때문입니다.
cntArr의 젤 첫번째 원소부터 0이 아니라면 1씩 줄여줍니다. 0이 되면 인덱스를 1씩 키워갑니다.
글 잘 봤습니다.