728x90
import sys
input = sys.stdin.readline

l = int(input().strip())
arr = []

for iter in range(l):
    a = input().strip().split(' ')
    if(a[0] == 'push'):
        arr.append(a[1])
        
    elif(a[0] == 'pop' or a[0] == 'top'):
        if(len(arr) == 0) :
            print('-1')
            continue
        print(arr[-1])
        if(a[0] == 'pop') : del arr[-1]
        
    elif(a[0] == 'empty'):
        print('1' if len(arr) == 0 else '0')
        
    else:
        print(len(arr))

스택의 기본 동작인 push, pop 등을 구현하는 문제. python을 이용하면 쉽게 풀 수 있다.

그런데 아무리 해도 시간초과가 떠서 질문란을 살펴보니 sys.stdin.readline을 사용하라고 하는데, 흔히 입력에 쓰는 input() 함수의 경우 입력 > prompt 출력 > strip(개행 제거)의 과정을 거치므로 대량 입력 시 시간 지연이 심해질 가능성이 있다고 한다.

이것때문에 시간초과로 5번이나 실패했다 ㅜㅜ...

728x90

+ Recent posts