https://school.programmers.co.kr/learn/courses/30/lessons/138476
그리디 문제로 볼 수 있다. 가장 수가 많은 귤의 종류부터 추가해준 뒤, 귤의 수가k 보다 많아지는 순간 break를 걸어주고 answer를 반환한다.
from collections import Counter
def solution(k, tangerine):
answer = 0
box = Counter(tangerine) # 귤 종류별 수를 세기 위해 Counter 사용
counts = sorted(box.values(), reverse=True) # 귤의 수를 내림차순으로 정렬
for count in counts:
answer += 1 # 종류 수 증가
k -= count # 현재 종류의 귤 개수만큼 빼기
if k <= 0: # k가 0 이하가 되면 종료
break
return answer