본문 바로가기

코딩 테스트/프로그래머스

[프로그래머스 Level 2, Jave] 귤 고르기

728x90
반응형

문제 : 귤 고르기


풀이 방법

해쉬맵으로 귤 종류가 몇개 있는지 분류하고

내림차순으로 정렬하는 리스트를 만든다

그리고 개수만큼 맞는지 확인


소스 코드

import java.util.*;
class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        LinkedHashMap<Integer, Integer> map = new LinkedHashMap<>();

        for (int i:tangerine) {
            if(map.containsKey(i)) {
                map.put(i, map.get(i)+1);
            } else {
                map.put(i, 1);
            }
        }

        List<Map.Entry<Integer, Integer>> entryList = new LinkedList<>(map.entrySet());
        entryList.sort(Map.Entry.<Integer, Integer>comparingByValue().reversed());

        for(Map.Entry<Integer, Integer> m : entryList){
            answer += 1;
            k -= m.getValue();
            if(k <= 0) break;
        }

        return answer;
    }
}

/*
    종류별 개수를 배열로 입력
    내림차순 정렬
    k개 만큼 위에서부터 맞는지 확인?
*/

 

728x90
반응형