나의 풀이
# 입력
import sys
import heapq
n = int(sys.stdin.readline().strip())
heap = []
# 처리
for x in sys.stdin:
if (x := (int(x))) == 0:
try:
print(heapq.heappop(heap)[1])
except:
print(0)
else:
heapq.heappush(heap, (abs(x), x))
CODE REVIEW
- 11279번 - 최대 힙 & 1927번 - 최소 힙과 매우 유사한 문제.
-
heapq
로 절댓값 힙을 구현하기 위해서heapq.heappush()
해줄 때에 (x의 절댓값, x)을 함께 넣어주었다. 정렬은 x의 절댓값으로 되고, 출력은heappop()
했을 때에 index 1인 요소를 출력해주면 된다.