import heapq
import sys
input = sys.stdin.readline
n = int(input())
heap = []
for _ in range(n):
x = int(input())
if x != 0:
heapq.heappush(heap,x)
else:
try:
print(heapq.heappop(heap))
except:
print(0)
- 힙에 대해서 정리해놓은 것이기 때문에 제대로 파악하고 있지 못하면 보면서 파악하는 것이 중요할 것 같다.
- 기본적으로 heap을 사용해서 push 해주게 되면 자동으로 정렬을 해주고 자연스럽게 pop할 때 가장 작은 값을 pop 해준다.
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준][자료구조/힙] 1655.가운데를 말해요 (파이썬/Python) (0) | 2022.01.08 |
---|---|
[백준][자료구조/힙] 11279.최대 힙 (파이썬/Python) (0) | 2022.01.08 |
[백준][DFS/DP] 2583. 영역 구하기 (파이썬/Python) (0) | 2022.01.05 |
[백준][구현] 1009.분산처리 (파이썬/Python) (0) | 2022.01.05 |
[백준][DFS/BFS] 2583. 영역 구하기 (파이썬/Python) (0) | 2021.12.30 |