map의 getOrDefault() 함수와
list 의 reversOrder() 정렬을 이용하여 풀었다.
getOrDefault는 두가지 파라미터를 입력받으며
1번째 인자로 값을 가져와야하는 key 값을
2번째 인자로 key값이 없을때 반환할 기본값을 입력받는다.
그리고 key값이 존재한다면 key값을 반환하고 없으면 2번째 인자를 return 받는다.
아주 유용한 함수인데 잘 알고 있지 못했다
import java.util.*;
import java.io.*;
class Solution {
public int solution(int k, int[] tangerine) {
int cnt =0 , sum=0;
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int num : tangerine) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
List<InteSSger> list = new ArrayList<>(map.values());
Collections.sort(list,Collections.reverseOrder());
for(int v : list){
if(sum+v>=k){
cnt++;
break;
}
else{
sum+=v;
cnt++;
}
}
return cnt;
}
}
'Algorithm & Data Structures > Programers' 카테고리의 다른 글
Lv 2. pH-index (0) | 2024.05.30 |
---|---|
Lv 2. 할인행사 (0) | 2024.05.29 |
Lv 2. 멀리뛰기 (1) | 2024.05.24 |
Lv 2. 구명보트 (0) | 2024.05.23 |
Lv 2. 점프와 순간이동 (0) | 2024.05.22 |