풀이 |
1. 받은 귤의 크기는 key값으로, 그 크기의 개수를 value값으로 하여 map에 저장한다 - for문으로 배열을 돌면서 map에 넣음 2. answer=0, sum=0을 선언한다 - answer : 크기 종류의 수 - sum : 크기 종류를 추가할 때마다 늘어나는 귤의 총 개수 3. list에 map의 value값들을 넣고, 역순으로 정렬한다 - 개수가 많은 것부터 고려해야 종류의 수가 줄어들 수 있기 때문이다 4. for문으로 sum에 value값들을 큰 것부터 더해가며 k와 비교한다. 동시에 answer도 1씩 증가시킨다 - sum이 k보다 커지면 answer 반환 |
회고 |
- getOrDefault 잊지말자,, |
코드(접은 글) |
더보기
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
Map<Integer, Integer> map = new HashMap<>();
for(int i : tangerine){
map.put(i, map.getOrDefault(i, 0) + 1);
}
int answer = 0;
int sum = 0;
ArrayList<Integer> list = new ArrayList<>(map.values());
Collections.sort(list, Collections.reverseOrder());
for(int l : list){
if(sum + l >= k){
answer++;
break;
} else {
sum += l;
answer++;
}
}
return answer;
}
}
'코테' 카테고리의 다른 글
[java] 프로그래머스스쿨 혼자서 하는 틱택토 (1) | 2024.09.16 |
---|---|
[java] 짝지어 제거하기 (0) | 2024.01.11 |
[python] 프로그래머스스쿨 더 맵게 (0) | 2023.12.14 |
[Java] 심화 1단계 (1) | 2023.11.13 |
[java] 프로그래머스스쿨 연습문제 Lv.1 문제 모음 2 (0) | 2023.04.24 |