난이도
LV2
풀이
파이썬 풀이
from collections import defaultdict
def solution(k, tangerine):
answer = 0
tangerinedict=defaultdict(int)
numbers=[]
idx=0
for tan in tangerine:
tangerinedict[tan]+=1
for key,value in tangerinedict.items():
numbers.append(value)
numbers.sort(reverse=True)
for num in numbers:
if k<=0:
break
else:
if num<=k:
k-=num
answer+=1
else:
answer+=1
k-=num
return answer
자바 풀이
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
int idx = 0;
Map<Integer,Integer> tangerineddict = new HashMap<>();
for(int size:tangerine){
tangerineddict.put(size,tangerineddict.getOrDefault(size,0)+1);
}
List<Integer> keyList = new ArrayList<>(tangerineddict.keySet());
keyList.sort((o1,o2)->tangerineddict.get(o2)-tangerineddict.get(o1));
int i=0;
while(k>0){
k-=tangerineddict.get(keyList.get(i));
answer+=1;
i+=1;
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 튜플 (0) | 2023.04.11 |
---|---|
백준 스타트와 링크(14889번) (0) | 2023.04.11 |
BOJ 아기상어 (16236번) (자바 / 파이썬 풀이) (0) | 2023.04.06 |
BOJ 미로탐색 (2178번) (0) | 2023.04.06 |
프로그래머스 혼자서 하는 틱택토 (0) | 2023.04.05 |