문제
- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=java
풀이
더보기
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer, Integer> tangerineCount = new HashMap<>();
for (int i : tangerine) {
tangerineCount.put(i, tangerineCount.getOrDefault(i, 0) + 1);
}
ArrayList<Integer> sortedCount = new ArrayList<>(tangerineCount.values());
sortedCount.sort(Collections.reverseOrder());
int countSum = 0;
for (int i = 0; i < sortedCount.size(); ++i) {
countSum += sortedCount.get(i);
answer++;
if (countSum >= k) {
break;
}
}
return answer;
}
}
'코딩테스트 문제집 > Programmers(Lv2)' 카테고리의 다른 글
[Programmers] Lv2: 카펫(42842) (0) | 2025.02.12 |
---|---|
[Programmers] Lv2: 점프와 순간 이동(12980) (0) | 2025.02.12 |
[Programmers] Lv2: 2 x n 타일링(12900) (0) | 2025.02.12 |
[Programmers] Lv2: 피보나치 수(12945) (0) | 2025.02.12 |
[Programmers] Lv2: 구명보트(42885) (0) | 2025.02.12 |