나의 풀이
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer, Integer> hm = new HashMap<>();
for(int key: tangerine){
hm.put(key, hm.getOrDefault(key, 0)+1);
}
Object[] values = hm.values().toArray();
Arrays.sort(values, Collections.reverseOrder());
int kind=1;
int sum=(int)values[0];
for(int i=1; i<values.length; i++){
if(sum>=k){
return kind;
} else{
sum+=(int)values[i];
kind+=1;
}
}
return kind;
}
}
다른 사람의 풀이
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer,Integer> map =new HashMap<>();
for (int t : tangerine) {
map.put(t, map.getOrDefault(t, 0) + 1);
}
List<Integer> list = new ArrayList<>(map.keySet());
list.sort((o1, o2) -> map.get(o2)-map.get(o1));
for(Integer key:list){
k -=map.get(key);
answer++;
if(k<=0){
break;
}
}
return answer;
}
}
▶ 내림차순 정렬이 핵심
▶ answer은 "종류의 수"를 의미한다.
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
H-index → "자바" (0) | 2023.01.03 |
---|---|
더 맵게→ Priority Queue★★+poll()+peek() (0) | 2023.01.02 |
k진수에서 소수 개수 구하기→10진수를 n진법의 문자열+StringBuilder()+소수판별(제곱근, long타입) (0) | 2023.01.02 |
전화번호 목록→ String문자열의 정렬 sort()의 개념★★ (0) | 2023.01.02 |
타켓넘버→ 지역변수는 인스턴스변수★ (0) | 2022.12.30 |