코드
import sys
stack = []
num= int(sys.stdin.readline()) #input()을 쓰면 시간 초과
for i in range(num):
order = sys.stdin.readline().split() #공백 기준으로 띄워서 배열로 들어감
if order[0] == 'push':
stack.append(order[1])
elif order[0] == 'top':
if len(stack)>0:
print(stack[-1])
else:
print(-1)
elif order[0] == 'size':
print(len(stack))
elif order[0] == 'pop':
if len(stack)>0:
print(stack[-1])
stack.pop(-1)
else:
print(-1)
elif order[0] == 'empty':
if len(stack) >0:
print(0)
else:
print(1)
풀이
for문이 한번 돌때마다 order은 입력받은 값으로 바뀐다.
배열로 들어간 이유는 push에서 띄우고 값이 입력되기 때문
그 외에는 기본개념을 이용하여 출력해주었다.
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 9012 괄호 파이썬 풀이 (스택) (0) | 2021.06.21 |
---|---|
[백준] 10773 제로 파이썬 풀이 (스택) (0) | 2021.06.21 |
[백준] 11651 좌표 정렬하기 2 파이썬 풀이 (정렬) (0) | 2021.06.21 |
[백준] 11729 하노이탑 이동 순서 파이썬 풀이 (재귀) (0) | 2021.06.21 |
[백준] 2805 나무자르기 파이썬 풀이 (이분탐색) (0) | 2021.06.20 |