프로그래머스 - 귤 고르기
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class Solution {
public int solution(int k, int[] tangerine) {
int solution =0;
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < tangerine.length; i++) {
Integer count = map.getOrDefault(tangerine[i], 0);
count++;
map.put(tangerine[i], count);
}
List<Integer> keys = new ArrayList<>(map.keySet());
Collections.sort(keys, (o1, o2) -> map.get(o2) - map.get(o1));
for(Integer key : keys) {
k = k -map.get(key);
solution++;
if(k <=0)
break;
}
return solution;
}
}
- Map Value 순 정렬
- keySet 리스트를 만들고
- 그 리스트를 정렬할때 기준을 map.get(key) 값 기준으로 정렬
- 그러면 리스트에 key값 순으로 key들이 정렬
- map 순회 시 리스트에서 key 가져다 사용!
- 출처 : [java] HashMap value(값)로 정렬하기