[프로그래머스] 귤 고르기(Java)

수경·2023년 2월 2일
0

problem solving

목록 보기
111/174

프로그래머스 - 귤 고르기

풀이

  1. 각 귤의 개수 세서 Map에 저장

  2. 개수를 기준으로 내림차순 정렬

  3. k개를 골라야하므로 (k = k - 각 귤의 개수)를 해주면서 몇 종류를 골랐는지 알 수 있도록 세줌 (result++)

  4. k가 0 이하이면 더 이상 귤을 고르지 않아도 된다 -> break

  5. return result


코드

import java.util.*;

class Solution {
    public int solution(int k, int[] tangerine) {
        int result = 0;
        Map<Integer, Integer> map = new HashMap<>();

        for (int t : tangerine) map.put(t, map.getOrDefault(t, 0) + 1);

        List<Map.Entry<Integer, Integer>> entryList = new LinkedList<>(map.entrySet());
        entryList.sort((o1, o2) -> o2.getValue() - o1.getValue());

        for (Map.Entry<Integer, Integer> entry : entryList) {
            k -= entry.getValue();
            result++;
            if (k <= 0) break;
        }
        return result;
    }
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글