자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 최소힙, 최대힙(힙, 힙)

얄루몬 2022. 7. 21. 16:15

문제

1) 자연수가 입력되면 최대힙에 입력한다.

2) 숫자 0 이 입력되면 최대힙에서 최댓값(최솟값)을 꺼내어 출력한다. (출력할 자료가 없으면 -1를 출력한다.)

3) -1이 입력되면 프로그램 종료한다.

최소힙

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)

최대힙

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)