[Programmers/JAVA] 귤 고르기

2023. 2. 20. 16:09자바/프로그래머스

내 코드

import java.util.*;
class Solution {
    public int solution(int k, int[] tangerine) {
        int answer = 0;
        
        //hashmap에 크기별로 갯수 저장.
        HashMap<Integer, Integer> hashmap=new HashMap<>();

        for(int t: tangerine) {
            if(hashmap.containsKey(t)) {
                hashmap.put(t, hashmap.get(t)+1);
            }else {
                hashmap.put(t, 1);
            }
        }

        //value만 저장
        List<Integer> values_list=new ArrayList<>(hashmap.values());

        //역순으로 저장.
        Collections.sort(values_list, Collections.reverseOrder());

        //hap을 만들지않아도 k에서 빼주면 됐음.
        int hap=0;
        for(int value:values_list) {
            if(hap<k) {
                hap+=value;
                answer++;
            }else {
                break;
            }
        }
        
        return answer;
    }
}

 

느낀점

문제자체가 어렵진 않은데 제한사항때문에 런타임에러가 계속 걸리는게 문제였다.

그래도 오래생각한 만큼 잘 풀려서 뿌듯하다.