최대 힙을 구현하는 문제.
import sys
import heapq
input = sys.stdin.readline
N = int(input())
heap = []
for _ in range(N):
x = int(input())
if x == 0:
if len(heap) > 0:
print(-heapq.heappop(heap))
else:
print(0)
else:
heapq.heappush(heap, -x)
heapq 모듈을 사용하면 힙 자료구조를 간편하게 사용할 수 있지만,
최소 힙밖에 제공되지 않는다.
따라서 최대 힙을 구현하기 위해서는 원소를 저장할 때 마이너스 부호를 붙여
간단하게 최대 힙을 구현할 수 있다.
'알고리즘' 카테고리의 다른 글
[python] 백준 2667번 - 단지번호붙이기 (0) | 2024.08.15 |
---|---|
[python] 백준 2630번 - 색종이 만들기 (0) | 2024.08.11 |
[python] 백준 1629번 - 곱셈 (0) | 2024.08.05 |
[python] 백준 9012번 - 괄호 (0) | 2024.07.22 |
[python] 백준 16564번 - 히오스 프로게이머 (0) | 2024.07.20 |