"""
11279 - 최대 힙 (silver 2)
"""
import sys
import heapq
input = sys.stdin.readline
heap_list = []
n = int(input().rstrip())
for _ in range(n):
x = int(input().rstrip())
if x == 0:
if not heap_list:
print("0")
else:
print(heapq.heappop(heap_list)[1])
else:
heapq.heappush(heap_list, (-x, x))
최대 힙 (우선순위 큐) / heapq 모듈
최대 힙을 만들 때는 트릭 필요
heapq 모듈은 최소 힙을 만들기에 push할 때 튜플 형식 (-x, x) 으로 작성한다
힙 리스트에는 튜플의 첫번째 원소끼리만 비교를 해서 최소값인 수가 맨 앞에 오는 구조
ex ) heap_list = [(-8, 8), (-6, 6), (-4, 4), (-2,2)]
'백준 문제풀이' 카테고리의 다른 글
1074 - Z (silver 1) (0) | 2022.08.16 |
---|---|
11724 - 연결 요소의 개수 (silver 2) (0) | 2022.08.13 |
2630 - 색종이 만들기 (silver2) (0) | 2022.08.11 |
1927 - 최소 힙 (silver 2) (0) | 2022.08.10 |
1780 - 종이의 개수 (silver 2) (0) | 2022.08.09 |