💡 Python 3
11286 절댓값 힙 [Link]
이전에 풀었던 최소 힙 문제와 거의 동일한 알고리즘으로 풀 수 있었다.
조금 더 생각해야하는 부분은 절댓값으로 비교하고 기존 숫자를 출력해야한다는 점이다.
이에 대한 해결 방법으로 (절댓값, 원래 값)으로 튜플로 묶어서 힙에 넣어줬다.
그러면 절댓값 기준으로 힙 내에서 정렬이 되고 출력할 때는 인덱스를 통해 원래 값을 출력할 수 있다.
import heapq
import sys
heap = []
n = int(sys.stdin.readline())
for _ in range(n):
num = int(sys.stdin.readline())
if num == 0:
if heap: print(heapq.heappop(heap)[1])
else: print(0)
else: heapq.heappush(heap, (abs(num), num))