https://school.programmers.co.kr/learn/courses/30/lessons/138476
결국 갯수가 많은 사이즈의 귤부터 순서대로 채워가면 된다.
귤 갯수로 내림차순 정렬 후, k 개 이상으로 귤을 담았을 때의 크기 종류를 찾음
import java.util.*;
import java.util.stream.*;
class Solution {
public int solution(int k, int[] tangerine) {
Map<Integer, Tangerine> map = new HashMap();
for (int size : tangerine) {
Tangerine t = map.computeIfAbsent(size, (key) -> Tangerine.of(size));
t.cnt++;
}
List<Tangerine> tangerines = map.values().stream()
.sorted((t1, t2) -> t2.cnt - t1.cnt)
.collect(Collectors.toList());
int answer = 0;
for (Tangerine t : tangerines) {
answer++;
k -= t.cnt;
if (k <= 0) break;
}
return answer;
}
static class Tangerine {
int size;
int cnt;
static Tangerine of(int size) {
Tangerine vo = new Tangerine();
vo.size = size;
return vo;
}
}
}
'코딩테스트 > programmers' 카테고리의 다른 글
괄호 회전하기 (0) | 2023.09.25 |
---|---|
연속 부분 수열 합의 개수 (0) | 2023.09.25 |
멀리 뛰기 (0) | 2023.09.25 |
N개의 최소공배수 (0) | 2023.09.25 |
예상 대진표 (0) | 2023.09.21 |