반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/138476#qna
2. 설명
이 문제는 해시의 개념을 잘 알고 있으면 쉽게 풀 수 있다. 값들이 특정 분류로 나뉜다?! 그럼 바로 해시 맵!
또 하나의 포인트는 해시 맵의 정렬이다. 이 문제에서는 value값이 큰 요소 순으로 정렬을 해서 종류 별 귤 갯수가 많은 순으로 선택을 해나가기 때문이다.
해시 정렬 방법
1. 스프레드 syntax를 사용해 배열로 만들어준다(이차원 배열이 됨).
2. 원하는 기준대로 정렬한다.
function solution(k, tangerine) {
let map = new Map();
for(let i=0;i<tangerine.length;i++){
map.set(tangerine[i], (map.get(tangerine[i]) || 0) + 1);
}
const arr = [...map].sort((a,b) => b[1]-a[1]);
let temp = 0, i = 0;
while(temp < k){
if(arr[i][1] >= k) return i+1;
if(temp < k){
temp += arr[i][1];
i++;
}
}
return i;
}
해시 맵 정렬 개념 참고한 블로그)
https://nukw0n-dev.tistory.com/13
반응형
'프로그래머스 > 해시' 카테고리의 다른 글
[해시] 프로그래머스 '롤케이크 자르기' - js (0) | 2023.05.01 |
---|---|
[해시] 프로그래머스 '할인 행사' - js (0) | 2023.04.06 |
map을 사용한 해시테이블 (0) | 2023.03.26 |
[해시] 프로그래머스 '베스트 앨범' - js (0) | 2022.11.07 |
[해시] 프로그래머스 '위장' - js (0) | 2022.11.03 |