import sys
input = sys.stdin.readline
stack = []
def stk(inp) :
if inp[0] == 'push' :
stack.append(int(inp[1]))
elif inp[0] == 'pop' :
if stack == [] :
print(-1)
else :
print(stack[-1])
del stack[-1]
elif inp[0] == 'size' :
print(len(stack))
elif inp[0] == 'empty' :
if stack == [] :
print(1)
else :
print(0)
elif inp[0] == 'top' :
if stack == [] :
print(-1)
else :
print(stack[-1])
n = int(input())
for i in range(n) :
x = list(input().split())
stk(x)
|
스택을 구현한다기보단 시키는대로 구현하는 과정에서 스택이 뭔지 이해하는데 도와주는 문제같다.
그냥 list를 만들고 하라는대로 구현하고 나면, list를 생성했지만 마지막 원소밖에 건들지 않는다.
결과적으로 후입선출의 성질을 스택 구조가 된다.
'Week 01 ~ 04 : 알고리즘 문제 풀이' 카테고리의 다른 글
파이썬 백준 10773 제로 (0) | 2021.11.13 |
---|---|
파이썬 백준 2504 괄호의 값 (0) | 2021.11.13 |
파이썬 백준 2261 가장 가까운 두 점 (0) | 2021.11.12 |
파이썬 백준 10830 행렬 제곱 (0) | 2021.11.12 |
파이썬 백준 1629 곱셈 (0) | 2021.11.12 |