알고리즘
[JavaScript] 프로그래머스 - 귤 고르기
J3SUNG
2023. 1. 16. 21:18
728x90
n개의 귤 중 k개를 판매하려고 합니다.
이 때 각 귤들의 크기가 있는데 종류가 가장 적게 했을 떄의 결과값을 출력하는 문제입니다.
그리디 문제로 크기에 따라 개수를 내림차순으로 정렬해줍니다.
정렬된 값에서 차례대로 개수를 더해서 k와 같거나 커지면 카운트한 값을 출력해줍니다.
function solution(k, tangerine) {
let answer = 0;
let obj = {};
tangerine.forEach((i) =>{
obj[i] = ++obj[i] || 1;
});
const sortObj = Object.values(obj).sort((x, y) => y- x);
let sum = 0;
for(let num of sortObj){
++answer;
sum += num;
if(k <= sum){
break;
}
}
return answer;
}