코딩테스트/파이썬 알고리즘 문제풀이 입문 (코딩테스트 대비)

최소힙, 최대힙

넌 감동란이었어 2023. 3. 6. 17:42

 

최소힙 코드

heapq 라이브러리를 사용한다.

import heapq as hq

a = []

while True:
    n = int(input())
    if n == -1:
        break
    if n == 0:
        if len(a) == 0:
            print(-1)
        else:
            print(hq.heappop(a))

    else:
        hq.heappush(a,n) #a리스트에다가 n을 푸쉬해라

 

최대힙 코드

import heapq as hq

a = []

while True:
    n = int(input())
    if n == -1:
        break
    if n == 0:
        if len(a) == 0:
            print(-1)
        else:
            print(-hq.heappop(a))

    else:
        hq.heappush(a,-n) #a리스트에다가 -n을 푸쉬해라

# 기본적으로 heapq는 최소힙으로 작동한다.
# 하지만 이문제는 최대힙 문제이기 때문에 음수의 개념을 활용한다.