스택을 파이썬에서는 리스트로 구현한다.
반복문 안에서는 input()보다 sys.stdin.readline()을 사용해야 시간초과 발생 확률 Down.
input()과 sys.stdin.readline()의 차이
import sys
n = int(input())
stack = []
for i in range(n):
s = sys.stdin.readline().split()
if s[0].find("push") == 0:
stack.append(s[1])
elif s[0] == "pop":
if stack != []:
print(stack.pop())
else:
print(-1)
elif s[0] == "size":
print(len(stack))
elif s[0] == "empty":
if stack != []:
print(0)
else:
print(1)
elif s[0] == "top":
if stack != []:
print(stack[-1])
else:
print(-1)
push는 입력을 "push 1"로 입력된다.
입력문에서 push인지 찾기 위해서는 find함수로 찾는다.
push라는 문자열이 있으면 0이 반환되기 때문에 0이 맞으면 stack 리스트에 push 뒤에 1의 값을 넣는다.
pop으로 가장 나중에 들어온(맨 오른쪽 값)을 제거한다.
size를 체크하기 위해서는 len()함수를 이용한다. 리스트 안에 들어있는 값의 총 수를 반환해준다.