반응형
코드
import sys
import heapq
n = int(input())
heap = []
for i 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))
설명
heap에 push를 할 때 (절댓값, 원래값)을 같이 넣어줘서 만약 절댓값이 같으면 원래 값이 음수인 것이 먼저 출력되게 해주었다.
pop을 해줄 때는 heapq.heappop(heap)[1]로 해서 뒤에 있는 원래 값을 출력하게 한다.
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 1927번 최소 힙 (0) | 2022.02.21 |
---|---|
[백준][Python] 4358번 생태학 (0) | 2022.02.21 |
[백준][Python] 14425번 문자열 집합 (0) | 2022.02.18 |
[백준][Python] 11279번 최대 힙 (0) | 2022.02.17 |
[백준][Python] 1918번 후위 표기식 (0) | 2022.02.17 |
댓글