반응형
package Programmers;
import java.util.*;
public class 귤고르기 {
public static void main(String[] args){
귤고르기 T = new 귤고르기();
int k = 2;
int[] tangerine = {1, 1, 1, 1, 2, 2, 2, 3};
T.solution(k, tangerine);
}
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < tangerine.length; i++) {
map.put(tangerine[i], map.getOrDefault(tangerine[i], 0) + 1);
}
List<Integer> arr = new ArrayList<>(map.values());
arr.sort(Collections.reverseOrder());
for (int i : arr) {
k -= i;
answer++;
if(k < 1){
break;
}
}
return answer;
}
}
1. map에 key = 귤번호 value = 개수
2. 내림차순으로 정렬한 value 값을 arr 에다가 넣는다.
3. 주어진 k개를 arr 내림차순되어있는대로 내리면서 값을 구한다.
반응형
'기타 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 기사단원의무기 Lv.1 (java) (0) | 2023.05.08 |
---|---|
[알고리즘] 프로그래머스 - 숫자카드나누기 Lv2 (Java) (0) | 2023.05.06 |
[알고리즘] 프로그래머스 -명예의전당 (Java) queue - Lv.1 (0) | 2023.05.01 |
[알고리즘] 프로그래머스 - 점찍기 (Java) (0) | 2023.04.30 |
[알고리즘] 프로그래머스 - 테이블 해시함수 Java (0) | 2023.04.28 |