https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3
귤의 크기 마다 몇개의 귤이 있는지 효율적으로 계산하는 문제로 생각 할 수 있다.
첫 시도의 코드 이다.
from collections import defaultdict, OrderedDict
def solution(k, tangerine):
answer = 0
d = defaultdict(int)
for t in tangerine:
d[t] +=1
od = dict(sorted(d.items(), key=lambda item: -item[1]))
kk=0
for key,val in od.items():
answer+=1
kk+=val
if kk >= k:
return answer
return answer
카운터를 사용해 조금더 간결하게 줄일 수 있다.
from collections import defaultdict, OrderedDict,Counter
def solution(k, tangerine):
answer = 0
d=Counter(tangerine)
kk=0
for val in sorted(d.values(), reverse=True):
answer+=1
kk+=val
if kk >= k:
return answer
return answer