링크 : https://school.programmers.co.kr/learn/courses/30/lessons/138476
문제 풀이
귤 크기별로 몇 개씩 있는지 dict 자료구조를 이용해 구분
dict의 value값만 필요하므로 Object.values()와 sort()를 이용해 내림차순으로 정렬
k값이 0보다 작아지기전까지 정렬 해두었던 귤의 갯수를 빼면 됨
- 귤을 뺄때마다 answer 1증가
- 0보다 작거나 같으면 더이상 담을 수 없으니 종료
function solution(k, tangerine) {
var answer = 0;
let kind = {};
tangerine.forEach(t => {
if (!kind[t]) {
kind[t] = 1;
} else {
kind[t]++;
}
});
// 종류 개수 크기 기준으로 내림차순으로 정렬
let arr = Object.values(kind).sort((a, b) => b - a);
for (let count of arr) {
if (k <= 0) break;
k -= count;
answer++;
}
return answer;
}
결론
<문제에서 사용한 dict 자료구조 정리>
dict의 key, value 값을 읽는 방법은 3가지가 존재
Object.keys() -> key 값으로 이루어진 배열 리턴
Object.values() -> value 값으로 이루어진 배열 리턴
Object.entries() -> [key, value] 값으로 이루어진 배열 리턴 (ex: [['a', 1], ['b', 2]] -> 이러한 배열을 dict 형태로 만들고 싶다면 Object.fromEntries()를 사용)
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 멀리 뛰기 (0) | 2025.04.01 |
---|---|
프로그래머스 명예의 전당 (1) JavaScript (0) | 2025.04.01 |
프로그래머스 구명보트 (JavaScript) (0) | 2025.03.27 |
프로그래머스 점프와 순간 이동 (JavaScript) (1) | 2025.03.25 |
프로그래머스 택배 배달과 수거하기 (JavaScript) (0) | 2025.02.14 |