import sys
input=sys.stdin.readline
def push(x):
stack.append(x)
def pop():
if not stack:
return -1
return stack.pop()
def size():
return len(stack)
def empty():
if not stack:
return 1
return 0
def top():
if not stack:
return -1
return stack[-1]
n=int(input())
stack = []
for _ in range(n):
order=input().split()
if 'push' in order:
push(order[1])
elif 'pop' in order:
print(pop())
elif 'size' in order:
print(size())
elif 'empty' in order:
print(empty())
elif 'top' in order:
print(top())
스택의 기본을 묻는 문제이다.
각 명령에 대한 함수를 만들어서 구현했다.
push():
split을 사용하여 띄어쓰기를 기준으로 나눈 다음 push했다.
top():
값을 꺼내오지 않고 스택의 가장 위에있는 값을 출력하기 위해서는 stack[-1]을 써주면 된다.