function solution(k, tangerine) {
const weight = {}
tangerine.forEach(el => {
if(!weight[el]) {
weight[el] = 1;
}else {
weight[el] += 1;
}
});
const sorted = Object
.values(weight)
.sort((a, b) => b - a);
let answer = 0;
for(let i = 0; i < sorted.length; i++) {
k -= sorted[i];
answer++;
if(k <= 0) {
break;
}
}
return answer;
}
- 객체로 각 귤들의 무게에 따른 갯수를 세었다.
- 같은 무게의 귤들이 많은 것 부터 상자에 넣고 만약 상자가 가득 차거나 넘치면 그때 귤을 그만 넣는다고 생각하였다.
- 이때, 가장 수가 많은 무게의 귤부터 상자에 넣었기에 자연스럽게 상자에 들어간 귤의 크기는 유사한 것들이 많아지게 된다.
'코딩테스트 연습' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 마법의 엘리베이터 JavaScript (0) | 2023.01.01 |
---|---|
프로그래머스 코딩테스트 연습 - 문자열 나누기 JavaScript (0) | 2023.01.01 |
프로그래머스 코딩테스트 연습 - 가장 가까운 같은 글자 JavaScript (0) | 2022.12.24 |
프로그래머스 코딩테스트 연습 - 할인 행사 JavaScript (0) | 2022.12.17 |
프로그래머스 코딩테스트 연습 - 명예의 전당 (1) JavaScript (0) | 2022.12.05 |