프로그래머스 귤 고르기 JavaScript
2023년 1월 3일
문제 풀이
귤 k 개를 서로 다른 종류(귤의 크기별)의 수를 최소화하여 상자 하나에 담는 문제.
(귤을 크기: 개수) 형태의 딕셔너리를 만들어 개수가 많은 크기의 귤들부터 상자에 귤 k 개가 될 때까지 넣어 준다.
solution.js
function solution(k, tangerine) {
let answer = 0;
const dic = createDic(tangerine);
const arr = dicToArray(dic);
answer = countAnswer(k, arr);
return answer;
}
function createDic(tangerine) {
const dic = {};
tangerine.forEach((item) => dic[item] = (dic[item]||0) + 1);
return dic
}
function dicToArray(dic) {
const arr = Object.values(dic).sort((a, b) => b-a);
return arr
}
function countAnswer(k, arr) {
let cnt = 0;
for (let item of arr) {
if (k <= 0) break;
else {
k -= item;
cnt++;
}
}
return cnt;
}