본문 바로가기
코딩테스트 문제집/Programmers(Lv2)

[Programmers] Lv2: 귤 고르기(138476)

by cogito30 2025. 2. 12.

문제

- 링크: 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;
    }
}