# n 입력
n = int(input())
# 정수 x
arr = []
for i in range(n):
x = int(input())
# x가 자연수일 때
if x == int(x) and x > 0:
arr.append(x)
# x가 0일 때
elif x == 0:
# 배열이 존재할 때
if len(arr) > 0:
arr.sort()
print(arr[0])
del arr[0]
# 배열 존재 x
else:
print(0)
위는 틀린 코드이다
그냥 시간 생각안하고 작성했다
import heapq
import sys
# n 입력
n = int(sys.stdin.readline())
# 정수 x
heap = []
for i in range(n):
x = int(sys.stdin.readline())
# x가 자연수일 때
if x == int(x) and x > 0:
heapq.heappush(heap, x)
# x가 0일 때
elif x == 0:
# 배열이 존재할 때
if len(heap) > 0:
print(heapq.heappop(heap))
# 배열 존재 x
else:
print(0)
위는 heapq을 사용했을 때 이다
heap에 대한 정보는
https://littlefoxdiary.tistory.com/3
[Python] 힙 자료구조 / 힙큐(heapq) / 파이썬에서 heapq 모듈 사용하기
힙은 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. 힙 property : A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대
littlefoxdiary.tistory.com
위 블로그가 정리를 잘 해놨다
힙 = 부모, 자식 노드간에 차이가 있음
파이썬은 아주 친절하게 라이브러리가 있어 편하게 풀었다