

먼저 tangerine 배열을 정렬한다. cnt라는 새로운 List를 만든 후에 동일한 크기를 가진 귤의 개수를 세서 List에 넣는다. List를 역순으로 정렬한다.
인덱스 0의 값부터 순서대로 k에서 뺀 후 answer에 1을 더한다. k가 0 또는 0보다 작아지면 answer를 return 한다.
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
List<Integer> cnt = new ArrayList<>();
Arrays.sort(tangerine);
int idx = 0;
cnt.add(1);
for (int i = 1; i < tangerine.length; i ++)
{
if (tangerine[i] == tangerine[i-1]) {
cnt.set(idx, cnt.get(idx)+1);
}
else {
idx ++;
cnt.add(1);
}
}
Collections.sort(cnt, Collections.reverseOrder());
for (int size: cnt) {
k -= size;
answer ++;
if (k <= 0) {
return answer;
}
}
return answer;
}
}
