🌞Algorithm/🔥programmers

[programmers] 귤 고르기

뿌야._. 2026. 5. 15. 12:29
문제
https://school.programmers.co.kr/learn/courses/30/lessons/138476
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


< 귤 고르기 >

 

문제 풀이 (Java)

import java.util.*;

class Solution {
	public int solution(int k, int[] tangerine) {
		int answer = 0;

		HashMap<Integer, Integer> map = new HashMap<>();
		for (int i = 0; i < tangerine.length; i++) {
			if (!map.containsKey(tangerine[i])) {
				map.put(tangerine[i], 1);
			} else {
				map.replace(tangerine[i], map.get(tangerine[i]) + 1);
			}
		}

		ArrayList<Integer> list = new ArrayList<>(map.keySet());
		Collections.sort(list, new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return map.get(o2) - map.get(o1);
			}
		});

		for (int key : list) {
			k -= map.get(key);
			answer += 1;
			if (k <= 0) {
				break;
			}
		}
		return answer;
	}
}

 

HashMap을 사용해 귤 크기별로 개수를 구한다. HashMap을 value 기준 내림차순으로 정렬한 후 순서대로 귤을 고른다.



 

출처: 프로그래머스 코딩 테스트 연습, 
https://school.programmers.co.kr/learn/challenges