728x90

문제를 보고 deque 로 접근을 했으나 시간 초과가 났고, heapq 를 사용하는 문제임을 알게 되었다. heaqp 를 사용할 때 리스트를 우선적으로 선언을 해준 뒤에 접근을 한다는 것을 다시 알게 되었고, sys.stdin.readline() 을 하는 것이 큰 차이가 있는 것 역시 알게 되었다.

from collections import deque
import math
import heapq
import sys
 
num = int(input())
 
k = [ ] 
 
for i in range(0,num):
 
    a = int(sys.stdin.readline())
 
 
    # a가 0이면
 
    if a==0:
 
        # 배열이 비어있는 경우
 
        if len(k)==0:
            print(0)
 
 
        # 배열이 비어있지 않은 경우
        else:
 
            q = heapq.heappop(k)
            print(q[1])   
 
 
 
 
    # a가 0이 아니면
 
    else:
        # 절댓값, 값 순으로 넣기
        heapq.heappush(k,([int(math.fabs(a)),a]))
 
 
 
 
 
728x90

+ Recent posts