
1. 문제


2. 소스코드
import heapq
import sys
n = int(sys.stdin.readline())
heap = []
for _ in range(n):
item = int(sys.stdin.readline())
if item == 0:
if heap:
print(heapq.heappop(heap))
else:
print(0)
else:
heapq.heappush(heap, item)
import heapq
import sys
n = int(sys.stdin.readline())
heap = []
for _ in range(n):
item = int(sys.stdin.readline())
if item == 0:
if heap:
print(heapq.heappop(heap)*(-1))
else:
print(0)
else:
heapq.heappush(heap, -item)
#최소힙에서 item을 음수로 저장하는 부분만 바꿔주면 된다!
3. 최소 힙 & 최대 힙
python에서는 import heap을 사용하기에 굉장히 쉬운 문제이다. 하지만 heap모듈은 min heap을 지원하기에, max heap은 알아서 사용자화 시켜주어야 한다는 점...!!!
#최소 힙
import heap
heap = []
heap2 = [2,3,1,4]
heapq.heappush(heap,3)
heapq.heappush(heap,1)
heapq.heappush(heap,2)
#heap = [1,3,2]
heapq.heapify(heap2)
#heap2 = [1,3,2,4]
heapq.heappop(heap)
# 1
반응형