[백준/BOJ][Python] 11279번 최대 힙

Eunding·2025년 4월 11일

algorithm

목록 보기
101/110

11279번 최대 힙

https://www.acmicpc.net/problem/11279


아이디어

파이썬에서 기본 힙은 최소힙이기 때문에 최대힙을 구현하기 위해서는 -를 붙여주면 된다.
예를 들어 입력으로 3 7 5 가 들어오면 -붙여준 상태로 힙에 넣으면 -7 -5 -3 순서가 되기 때문에 출력할 때 -만 빼주면 된다~


코드

import sys
import heapq
input = sys.stdin.readline

heap = []
n = int(input())
for _ in range(n):
    x = int(input())
    if x != 0:
        heapq.heappush(heap, -x)
    else:
        if not heap: # 힙 비어있으면
            print(0)
        else: # 가장 큰 값 출력, 배열에서 제거
            y = heapq.heappop(heap)
            print(-y)

0개의 댓글