# 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
위 블로그가 정리를 잘 해놨다
힙 = 부모, 자식 노드간에 차이가 있음
파이썬은 아주 친절하게 라이브러리가 있어 편하게 풀었다