오늘은 여기까지
[프로그래머스] 귤 고르기 (해시 Lv.2) - 자바 Java 본문
https://school.programmers.co.kr/learn/courses/30/lessons/138476
입력 받은 귤의 크기와 개수를 저장하고, 개수를 기준으로 내림차순 정렬한다.
최대한 크기의 종류가 적도록 선택하는 것이므로 개수가 많은 크기의 귤부터 모두 선택한다.
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for(int tan : tangerine) {
map.put(tan, map.getOrDefault(tan, 0) + 1);
}
List<Integer> list = new ArrayList<>();
for(int key : map.keySet()) {
// System.out.println("key: " + key + ", value: " + map.get(key));
list.add(map.get(key));
}
Collections.sort(list, Comparator.reverseOrder());
for(int i=0; i<list.size(); i++) {
k -= list.get(i);
if(k<=0) {
answer = i+1;
break;
}
}
return answer;
}
}
- `Array.sort()`는 원시형(primitive) 타입을 정렬할 때 사용한다.
- 리스트, 큐, 맵 등 데이터가 여러 개인 객체를 정렬할 때 `Collections.sort()`를 사용한다.
- `Collections.sort(list, Comparator.reverseOrder());` 는 리스트를 내림차순 정렬을 위해 사용했다.
Collections.sort() 와 Comparator에 대한 자세한 내용은 따로 공부해야겠다...
'Problem Solving' 카테고리의 다른 글
[백준] 1253 좋다 - 자바 Java (0) | 2024.07.08 |
---|---|
[프로그래머스] 프렌즈4블록 (Lv.2) - 자바 Java (0) | 2024.07.03 |
[프로그래머스] 오픈채팅방 (Lv.2) - 자바 Java (1) | 2024.07.01 |
[프로그래머스] 완주하지 못한 선수 (해시 Lv.1) - 자바 Java (0) | 2024.06.28 |
[프로그래머스] 의상 (해시 Lv.2) - 자바 Java (0) | 2024.06.17 |