백준 11279 - 최대 힙 (Python3)
코드
import heapq
n = int(input())
heap = []
for _ in range(n):
x = int(input())
if x == 0:
if not heap:
print(0)
else:
print(-heap[0])
heapq.heappop(heap)
else:
heapq.heappush(heap, -x)
문제 해설
최대 힙을 구하는 문제이다. 파이썬의 heapq는 최소 힙으로 기본 구현되어 있는데 이를 최대 힙으로 구현하려면 heappush() 메소드에 값을 넣을 때, 음수로 넣어주고 출력할 때 다시 그 부호를 바꿔주면 최대 힙의 효과를 가질 수 있다.
heapq에 대한 설명은 최소 힙 문제에서 다루었으므로 링크로 대신한다.
댓글남기기