๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ๊ทค ๊ณ ๋ฅด๊ธฐ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ๊ทค ๊ณ ๋ฅด๊ธฐ

์š”์ผ์ด 2023. 2. 28. 17:33
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

import java.util.*;

class Solution {
     public int solution(int k, int[] tangerine) {

        List<Integer> keySet = new ArrayList<>();
        HashMap<Integer,Integer> map = new HashMap<>();

        int answer = Integer.MAX_VALUE;

        Arrays.sort(tangerine);

        for(int i=0; i<tangerine.length; i++){
            if(!map.containsKey(tangerine[i])){
                map.put(tangerine[i], 1);
            }else{
                map.put(tangerine[i], map.get(tangerine[i]).intValue()+1);
            }
        }


        keySet.addAll(map.keySet());

        // Value ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        keySet.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return map.get(o2).compareTo(map.get(o1));
            }
        });

        int sum = 0;
        int index = 0;

        for(int i=0; i<keySet.size(); i++){
            
            sum += map.get(keySet.get(i)).intValue();

            if(k<=sum){
                answer = Math.min(answer, (i+1)-index);
                sum = 0;
                index++;
            }
            
        }

        if(answer == Integer.MAX_VALUE){
            answer = 1;
        }

        return answer;
    }
}
Comments