공부 기록장
[백준 - Python] 11279. 최대 힙 본문
https://www.acmicpc.net/problem/11279
코드
import sys, heapq
input = sys.stdin.readline
max_heap = []
n = int(input())
for i in range(n):
num = int(input()) * -1
if num == 0:
print(heapq.heappop(max_heap) * -1 if max_heap else 0)
else:
heapq.heappush(max_heap, num)
접근 방식
1. 주어진 수가 0이 아닌 경우, 그 수를 -1을 곱해서 음수로 만들어 최대 힙으로 활용할 최소 힙에 넣는다
2. 주어진 수가 0인 경우, 최대 힙에서 가장 큰 값을 꺼내서 출력하고, 힙이 비어 있으면 0을 출력한다
배운 점
1. 최대 힙 구현은 모든 값을 음수로 변환해 구현한다
'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글
[백준 - Python] 1238. 파티 (0) | 2024.09.03 |
---|---|
[백준 - Python] 1916. 최소비용 구하기 (0) | 2024.09.03 |
[백준 - Python] 2075. N번째 큰 수 (0) | 2024.08.30 |
[백준 - Python] 17609. 회문 (0) | 2024.08.09 |
[백준 - Python] 2230. 수 고르기 (0) | 2024.08.08 |