문제
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
핵심 아이디어
- 카운팅 객체 만들기
- tangerineSizes[size]: 현재 요소의 개수를 가져온다.
- || 0: 해당 요소가 아직 등장하지 않은 경우, 기본값 0을 설정한다.
- + 1: 현재 요소의 개수를 1 증가시킨다.
for (const size of tangerine) {
tangerineSizes[size] = (tangerineSizes[size] || 0) + 1;
}
정답
function solution(k, tangerine) {
let tangerineSizes = {};
let totalCount = 0;
let answer = 0;
for (const size of tangerine) {
tangerineSizes[size] = (tangerineSizes[size] || 0) + 1;
}
const sortedTangerineSizes = Object.values(tangerineSizes).sort((a, b) => b - a);
for (const count of sortedTangerineSizes) {
if (totalCount >= k) break;
totalCount += count;
answer++;
}
return answer;
}