절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.
프로그램은 처음에 비어있는 배열에서 시작하게 된다.
18
1
-1
0
0
0
1
1
-1
-1
2
-2
0
0
0
0
0
0
0
-1
1
0
-1
-1
1
1
-2
2
0
import heapq
import sys
N = int(sys.stdin.readline())
heap = []
for _ in range(N):
x = int(sys.stdin.readline())
if x == 0:
if heap:
print(heapq.heappop(heap)[1])
else:
print(0)
else:
heapq.heappush(heap, (abs(x), x))
문제는 어렵지 않다. 힙에 대한 기본적인 것만 알면 풀 수 있다. 그런데 이 문제가 틀리는 이유는 시간 때문.. 제한시간이 1초이다.
input() 대신 sys.stdin.readline()을 사용하고 컴파일러를 python3가 아닌 Pypy3로 해야 통과한다.