문제풀이/기타

[Python/파이썬] 프로그래머스 귤 고르기

딜레이레이 2023. 1. 6. 18:52
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

from collections import defaultdict
import heapq

def solution(k, tangerine):
    answer = 0
    # (귤사이즈 : 개수) 딕셔너리 
    t_num = defaultdict(int)
    for t in tangerine:
        t_num[t] += 1
        
    # (-크기별 귤의 개수, 귤의 크기)를 최소힙에 담기
    t_heap = []
    for key,value in t_num.items():
        heapq.heappush(t_heap, (-value, key))
    cnt = 0

    while True:
        num, size = heapq.heappop(t_heap)
        cnt += (-num)
        answer += 1
        # 개수 다 채우면 while문 탈출
        if cnt >= k:
            break
            
    return answer