<내 코드>
import heapq
from sys import stdin
N = int(stdin.readline())
heap = []
for i in range(N):
num = int(stdin.readline())
if num == 0:
if heap:
print(heapq.heappop(heap)[1])
else:
print(0)
else:
heapq.heappush(heap, [abs(num), num]) # 절댓값 처리해 작은 값부터 힙에 넣는다.(우선순위, 값)
push 할 때는 절댓값을 기준으로 최소 힙으로 정렬해주면, pop의 경우에 절댓값이 작은 값이 먼저 pop 되고 절댓값이 작은 경우가 여러 개일 경우에는 기존 값이 작은 수가 먼저 출력되게 된다.
반응형
'알고리즘 문제풀기 > 백준 - Python' 카테고리의 다른 글
[백준 14226] 이모티콘 - Python (BFS, DP) (0) | 2020.10.25 |
---|---|
[백준 1261] 알고스팟 - Python (우선순위 큐, BFS) (0) | 2020.10.24 |
[백준 1927] 최소 힙 - Python( 우선순위 큐, 힙) (0) | 2020.10.23 |
[백준 11279] 최대 힙 - Python ( 우선순위 큐, 힙) (0) | 2020.10.23 |
[백준 10973] 이전 순열 - Python (순열) (0) | 2020.10.22 |