코깽이의 코딩일기

[ 프로그래머스 / JAVA / Level 2 ] 귤 고르기 본문

PS/프로그래머스

[ 프로그래머스 / JAVA / Level 2 ] 귤 고르기

코깽이 2024. 6. 21. 18:04
반응형

제출한 코드

import java.util.*;
class Solution {
    public int solution(int k, int[] tangerine) {
        Map<Integer, Integer> map = new HashMap<>();
        int answer = 0;
        for(int key : tangerine){
            map.put(key, map.getOrDefault(key, 0) + 1);
        }
        Integer[] data = new Integer[map.size()];
        
        int idx= 0;
        for(int value : map.values()){
            data[idx++] = value;
        }
        idx = 0;
        Arrays.sort(data, Collections.reverseOrder());
        while(k > 0){
            k -= data[idx++];
            answer++;
        }
        return answer;
    }
}

생각한 로직

1. HashMap을 이용한 특정 key값들의 빈도수 저장

2. 역순 정렬 메서드 사용을 위해 int[]가 아닌 Integer[]에 저장

3. k개 만큼 귤을 고르기만 하면 되기에 0번 인덱스부터 접근해서 k를 채워준다.

반응형