문제
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)
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[완전탐색][재귀 함수와 스택] - 재귀 함수를 이용한 이진수 출력 (0) | 2022.07.21 |
---|---|
[완전탐색][재귀함수와 스택] - 재귀함수와 스택 (0) | 2022.07.21 |
[자료구조 활용][스택, 큐, 해쉬, 힙] - 애너그램(딕셔너리) (0) | 2022.07.21 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 단어찾기(딕셔너리) (0) | 2022.07.18 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 교육과정 설계(큐) (0) | 2022.07.18 |