자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 최소힙, 최대힙(힙, 힙)
얄루몬
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)