728x90
https://school.programmers.co.kr/learn/courses/30/lessons/138476
풀이
- map 이용
코드
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
Map<Integer, Integer> sizeMap = new HashMap<Integer, Integer>();
// sizeMap data set (사이즈별로 정리)
for(int size : tangerine) {
sizeMap.put(size, sizeMap.getOrDefault(size, 0)+1);
}
// keyList 생성 (사이즈 list)
List<Integer> keyList = new ArrayList<>(sizeMap.keySet());
// keyList의 value 기준 내림차순 정렬 (사이즈별 총개수 내림차순)
keyList.sort((o1, o2) -> sizeMap.get(o2) - sizeMap.get(o1));
// k의 개수만큼 상자에 담으며 최소값 추출
int i = 0;
while(k > 0){
k -= sizeMap.get(keyList.get(i));
answer++;
i++;
}
return answer;
}
}
728x90
'알고리즘 풀이' 카테고리의 다른 글
[프로그래머스] n^2 배열 자르기 자바(Java) (0) | 2023.04.04 |
---|---|
[프로그래머스] 위장 자바(Java) (0) | 2023.04.03 |
[프로그래머스] 괄호 회전하기 자바(Java) (0) | 2023.04.01 |
[프로그래머스] 둘만의 암호 자바(Java) (0) | 2023.03.31 |
[프로그래머스] 신고 결과 받기 자바(Java) (0) | 2023.03.30 |
댓글