해시
Map으로 귤 번호와 양을 저장합니다.
const mapToArray = [...map].sort((a, b) => b[1] - a[1]);
Map을 스프레드 연산자를 이용해서 배열로 바꿔준 후에 개수가 큰 순서대로 정렬을 합니다.
k가 0보다 크다면 k에서 개수를 빼주고 정답을 +1 합니다.
그런데 k가 0과 같거나 작아졌다면 반복을 종료합니다.
정답을 반환합니다.
const solution = (k, tangerine) => {
let answer = 0;
const map = new Map();
tangerine.forEach((v) => {
if (map.has(v)) {
let val = map.get(v);
val++;
map.set(v, val);
} else {
map.set(v, 1);
}
});
const mapToArray = [...map].sort((a, b) => b[1] - a[1]);
for (const [key, value] of mapToArray) {
if (k >= 0) {
k -= value;
answer++;
if (k <= 0) {
break;
}
}
}
return answer;
};