프로그래머스 - 귤 고르기

greenTea·2023년 2월 24일
0

알고리즘

목록 보기
1/4

프로그래머스 코딩 연습 - 귤 고르기

import java.util.*;

class Solution {
    public int solution(int k, int[] tangerine) {
        
        Map<Integer, Integer> map = new HashMap<>();
        
        for (int i : tangerine) {
            if (!map.containsKey(i)) {
                map.put(i,1);
            } else {
                int a = map.get(i);
                map.put(i,a+1);
            }
        }
        
        List<Integer> list = new ArrayList<>(map.values());
        Collections.sort(list,(a,b)->b-a);
        
        int answer=0;
        for (int i : list) {
            System.out.println(i);
            if (k<=0) {
                return answer;
            }
            k-=i;
            answer++;
    	}
        return answer;
	}
}

설명하자면
1. tangerine에서 값을 가져와서 map 형태로 구성해준다.
2.종류마다 개수가 몇개인지 확인한 후 이를 리스트로 변환하여 내림차순으로 정렬 해준다.
3.이후 리스트에서 큰 값부터 꺼내면서 k에서 값을 빼주는데 이 때 k가 0이 되면 다 구매한 것으로 return하면 된다.


다른 분들은 map.contains로 확인 하지 않고 map.getOrDefault로 처리하였다.

출처 : 프로그래머스 알고리즘 귤고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476>

profile
greenTea입니다.

0개의 댓글