728x90
반응형
문제
728x90
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int k, int[] tangerine) {
List<Integer> arr = Arrays.stream(tangerine).boxed().collect(Collectors.toList()); //list 로 변환
Map<Integer, Integer> freqMap = new HashMap<>(); //귤의 size 가 key, 중복크기 개수가 value
for (int size : arr) { //arr 에서 하나씩 귤을 뽑음
freqMap.put(size, freqMap.getOrDefault(size, 0) + 1); //size 로 찾아서 value+1 을 함
}
List<Integer> freq = new ArrayList<>(freqMap.values()); //value 로만 만든 list
Collections.sort(freq, Comparator.reverseOrder()); //정렬
int ans = 0; //count
while (k > 0) { //귤 개수가 0 이하로 떨어지면 stop
k -= freq.get(0); //freq 의 0번째 요소, 즉 가장 높은 중복 귤의 개수
ans++; //count +1
freq.remove(0); //0번째 요소 제거
}
return ans;
}
}
|
cs |
반응형
728x90
반응형
'[JAVA] 프로그래머스 스쿨 > JAVA Lv.2' 카테고리의 다른 글
[프로그래머스/Java] Lv.2 이진 변환 반복하기 (0) | 2023.12.25 |
---|---|
[프로그래머스/Java] Lv.2 점프와 순간 이동 (0) | 2023.12.25 |
[프로그래머스/Java] Lv.2 최솟값 만들기 (0) | 2023.03.03 |
[프로그래머스/Java] Lv.2 올바른 괄호 (0) | 2023.03.03 |
[프로그래머스/Java] Lv.2 JadenCase 문자열 만들기 (0) | 2023.02.23 |