heapq
문제. 상당히 간단한 편
heapq
찾아보니까 PriorityQueue보다는 heapq를 권장한다고 함.
heapq
에서 heappush
함수로, 원소를 heap
에 추가할 때 튜플 형식으로 집어넣을 수 있음.
heapq.heappush(h, ({인자1, 인자2}))
이때 heap은 인자1, 인자2 순서대로 우선순위를 정해서 최소 heap을 구성해 줌.
import sys
import heapq
def main():
N = int(sys.stdin.readline())
h = []
for _ in range(N):
x = int(sys.stdin.readline())
if x == 0:
# 절댓값이 가장 작은 값을 출력, 그 값을 배열에서 제거
print(0 if len(h)==0 else heapq.heappop(h)[1])
else:
heapq.heappush(h, (abs(x),x))
main()