귤 고르기 (자바 , 프로그래머스)

DongHyun Kim·2023년 6월 20일
1

알고리즘 풀이

목록 보기
7/12

귤 고르기 문제

풀이 아이디어

각 귤들의 개수를 정리하기 위해 HashMap 사용
귤들을 개수 순으로 정렬하기 위해 KeySet 을 List 로 만들어서 Value 순 정렬
List 에 있는 key 값들은 Value 내림차순으로 정렬 돼있으니 꺼내서 K가 0보다 같거나 작아질 때까지 귤들 꺼내기

  • 키포인트: HashMap 사용, Value 기준 정렬하는 방법
import java.util.*;

class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        HashMap<Integer, Integer> map = new HashMap<>();
         for (int e : tangerine) {
            map.put(e, map.getOrDefault(e, 0) + 1);
        }
        List<Integer> list = new ArrayList<>(map.keySet());
        Collections.sort(list, (Integer o1, Integer o2) -> {
            return map.get(o2) - map.get(o1);
        });
        for(int e : list){
            if(k > 0){
                k -= map.get(e);
                answer++;
            }
            else break;
        }
        return answer;
    }
}
profile
do programming yourself

0개의 댓글