import heapq
import sys
heap=[]
n=int(sys.stdin.readline().strip())
for i in range(n) :
inp=int(sys.stdin.readline())
if inp!=0:
heapq.heappush(heap,(-inp, inp))
else :
if heap :
print(heapq.heappop(heap)[1])
else :
print(0)
import heapq
를 해야지 리스트를 만들고, heapq 사용 가능
출처 : https://www.daleseo.com/python-heapq/
heapq 는 최소힙으로 구성돼있다고 한다
- 바로 힙에 튜플(tuple)를 원소로 추가하거나 삭제하면, 튜플 내에서 맨 앞에 있는 값을 기준으로 최소 힙이 구성되는 원리를 이용
- 힙에서 값을 읽어올 때는 각 튜플에서 인덱스 1에 있는 값을 취하면 됨
출처 : https://www.daleseo.com/python-heapq/
heapq.heappush(heap, (-num, num)) # (우선 순위, 값)