백준 10828 스택

강지훈·2022년 6월 8일
0

import sys
input=sys.stdin.readline
#백준 문제 10828번
#리스트 준비 for 스택사용
#파이썬에서는 stack을 지원하는게 없어서 list로 구현해야한다
s=[]

#명령 횟수 지정
n=int(input())
for _ in range(n):
#명령어 구분을 위한 tmp 설정
tmp=input().split()
#push x : 정수 x를 스택에 넣는 연산
#tmp[0][1]== push x 뛰어쓰기를 기준으로 나뉜다
if tmp[0]=='push':
s.append(tmp[1])
#pop:스택에서 가장 위에 있는 정수를 빼고 그 수를 출력
#만약 스택에 들어있는 정수가 없는 경우에는 -1출력
elif tmp[0]=='pop':
if len(s)==0:
print(-1)
else:
print(s.pop())

#size:스택에 들어있는 정수의 개수를 출력한다
elif tmp[0]=='size':
    print(len(s))
#empty: 스택이 비어있으면 1 아니면 0을 출력한다
elif tmp[0]=='empty':
    if len(s)==0:
        print(1)
    else:
        print(0)
#top:스택의 가장 위에 있는 정수를 출력
#만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력
elif tmp[0]=='top':
    if len(s)==0:
        print(-1)
    else:
        print(s[-1])
profile
never stop

0개의 댓글