heapq.heappop(리스트)
heapq.heappush(리스트, 넣을 값)
import heapq
import sys
heap=[]
# minheap 에서 가장 작은 값은 이진트리의 루트에 위치
#k는 자식 원소 2k, 2k+1보다 작거나 같음
n=int(sys.stdin.readline().strip())
# 가장 작은 애를 뒤에다가 넣기
for i in range(n) :
inp=int(sys.stdin.readline())
if inp!=0:
heapq.heappush(heap,inp)
#heapq.heappush(넣을 리스트, 넣을 수)
else : #0이라면 가장 작은 아이 remove
if heap :
print(heapq.heappop(heap))
#heappop() 함수를 호출하여 원소를
# 삭제할 때마다 이진 트리의 재배치를 통해
# 매번 새로운 최소값을 인덱스 0에
else :
print(0)
import sys
n=int(sys.stdin.readline().strip())
lis = []
for i in range(n) :
inp=int(sys.stdin.readline())
if inp!=0:
lis.append(inp)
else :
if lis :
print(min(lis))
lis.remove(min(lis))
else : print(0)
heapq.heappop(리스트)
heapq.heappush(리스트, 넣을 값)
오늘도 새로운 모듈을 배웠군! 쉬운 문제, 기본 문제를 풀더라도 항상 하나씩 얻어가는 게 있다는 것은 무척 행복한 일이지