알고리즘

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

쿠키담임선생님 2024. 1. 7. 17:46

프로그래머스 귤 고르기 문제이다.

 

이 문제에서 중요한 로직은

 

맵을 생성해서 해당 밸류가 높은 순으로 정렬 시킨다. 그 뒤 k값을 그 밸류값을 빼주는 것을 반복한다.

 

반복의 제한은 0이하로 떨어질때까지이다.

 

코드는 다음과 같다.

 

import java.util.*;
class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        Map<Integer, Integer>map = new HashMap<>();
        for(int i: tangerine){
            map.put(i, map.getOrDefault(i,0)+1);
        }
        //밸류 값으로 내림차순 하기 위해 필요한 과정
        List<Integer>list = new ArrayList<>(map.keySet());
        list.sort((o1,o2)->map.get(o2)-map.get(o1));
        for(Integer i: list){
            if(k<=0){
                break;
            }
            k-=map.get(i);
            answer++;
        }
        
        
        return answer;
    }
}

 

 

 

'알고리즘' 카테고리의 다른 글

백준_패션왕 신예빈(JAVA)  (0) 2024.02.18
백준 로봇청소기(JAVA)  (0) 2024.01.18
프로그래머스 - 피로도 (JAVA)  (0) 2023.12.03
백준 - 감시(java)  (0) 2023.03.30
백준 - 톱니바퀴  (0) 2023.03.27