본문 바로가기
알고리즘

프로그래머스 귤 고르기 (자바,파이썬 풀이)

by eunyoung 2023. 4. 8.

난이도


LV2

 

 

풀이


파이썬 풀이

from collections import defaultdict

def solution(k, tangerine):
    answer = 0
    tangerinedict=defaultdict(int)
    numbers=[]
    idx=0
    
    for tan in tangerine:
        tangerinedict[tan]+=1
    
    for key,value in tangerinedict.items():
        numbers.append(value)
    
    numbers.sort(reverse=True)
    
    for num in numbers:
        if k<=0:
            break
        else:
            if num<=k:
                k-=num
                answer+=1
            else:
                answer+=1
                k-=num

    return answer

 

자바 풀이

import java.util.*;

class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        int idx = 0;
        Map<Integer,Integer> tangerineddict = new HashMap<>();
        
        for(int size:tangerine){
            tangerineddict.put(size,tangerineddict.getOrDefault(size,0)+1);
        }
        
        List<Integer> keyList = new ArrayList<>(tangerineddict.keySet());
        
        keyList.sort((o1,o2)->tangerineddict.get(o2)-tangerineddict.get(o1));
        
        int i=0;
        while(k>0){
            k-=tangerineddict.get(keyList.get(i));
            answer+=1;
            i+=1;
        }
        
        return answer;
    }
}