각 귤의 개수 세서 Map에 저장
개수를 기준으로 내림차순 정렬
k개를 골라야하므로 (k = k - 각 귤의 개수)를 해주면서 몇 종류를 골랐는지 알 수 있도록 세줌 (result++)
k가 0 이하이면 더 이상 귤을 고르지 않아도 된다 -> break
return result
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int result = 0;
Map<Integer, Integer> map = new HashMap<>();
for (int t : tangerine) map.put(t, map.getOrDefault(t, 0) + 1);
List<Map.Entry<Integer, Integer>> entryList = new LinkedList<>(map.entrySet());
entryList.sort((o1, o2) -> o2.getValue() - o1.getValue());
for (Map.Entry<Integer, Integer> entry : entryList) {
k -= entry.getValue();
result++;
if (k <= 0) break;
}
return result;
}
}