백준 | 14235 크리스마스 선물 [Python]

yeonk·2022년 6월 27일
0

algorithm

목록 보기
84/88
post-thumbnail

💡 Python 3






🔗 문제


14235 크리스마스 선물 [Link]






💻 코드


절댓값 힙 문제와 유사하게 문제를 풀었는데 어려울 수 있는 부분은 총 2가지 일 것 같다.

  • 파이썬의 heapq 모듈은 최소 힙을 지원하고 해당 문제는 최대 힙이 필요한 문제 → 힙에 (음수 값, 원래 값)으로 넣어주는 것으로 해결

  • 입력 값이 0과 같이 하나의 정수로 들어올 수 도 있고, 2, 3, 2와 같은 그 이상의 정수가 들어올수도 있는 불규칙한 입력 값 문제 → len()을 이용해서 판별

위 내용을 적용한 코드는 아래와 같다.


import heapq

n = int(input())
heap = []
temp = []

for _ in range(n):

    cur = input()
    if len(cur) == 1:
        if heap: print(heapq.heappop(heap)[1])
        else: print(-1)
    else:
        temp = list(map(int, cur.split()))
        for i in range(1, len(temp)): 
            heapq.heappush(heap, (-temp[i], temp[i]))

0개의 댓글