[프로그래머스] 귤 고르기 java

Bong2·2024년 5월 5일
0

알고리즘

목록 보기
11/63
post-thumbnail

문제 귤고르기

문제접근

  1. 정수와 정수의 개수를 저장하는 딕셔너리(hashMap)을 선언
  2. 정수의 개수(values)를 내림차순으로 정렬
  3. 현재 sum을 한 귤의 개수가 한 상자에 담으려는 귤의 개수(k)보다 낮은 경우 다음 귤을 추가
  4. 귤의 개수(k)보다 큰 경우 break 후 결과 출력
import java.util.*;

class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        
        Map <Integer,Integer> maps = new HashMap<>();
        
        for(int i =0;i<tangerine.length;i++)
        {
            maps.put(tangerine[i],maps.getOrDefault(tangerine[i],0)+1);
        }
        
        List<Integer> lists = new ArrayList<>(maps.values());
        Collections.sort(lists,((x,y) -> (y-x)));
        
        int sum = 0;
        for(int list:lists)
        {
            if(sum < k)
            {
                sum+=list;
                answer++;
            }else//같거나 큰경우는 종료
            {
                break;
            }
        }
        
        return answer;
    }
}
profile
자바 백엔드 개발자로 성장하자

0개의 댓글