[Programmers] Lv.2 귤 고르기

Max Kang·2022년 12월 6일
0

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
profile
Software Engineer

0개의 댓글