728x90
https://www.acmicpc.net/problem/10828
C++ STL 엔 stack 이 있지만, 파이썬엔 없다.
파이썬은 list 가 stack 의 역할을 할 수 있다.
정말 강력한 언어라는게 체감이 되는 문제.
또한 파이썬엔 switch/case 가 없다고 한다.
왜냐면 그냥 if/elif 가 그 역할을 다할 수 있으니까 그런 것 같다.
from sys import stdin
stack = []
def push(X):
stack.append(X)
def pop():
if len(stack) == 0:
print(-1)
else:
print(stack.pop())
def size():
print(len(stack))
def empty():
if len(stack) == 0:
print(1)
else:
print(0)
def top():
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
# main
T = int(stdin.readline())
for i in range(T):
command = list(stdin.readline().split())
if command[0] == "push":
push(command[1])
elif command[0] == "pop":
pop()
elif command[0] == "size":
size()
elif command[0] == "empty":
empty()
elif command[0] == "top":
top()
push 는 다른 명령어와 다르게,
공백으로 구분되는 2개의 문자열을 받게 된다.
ex) push 132 , push 1, push 1010
나머지 명령어는 단순히 명령어 문자열 1개만을 받는다.
그래서 커맨드에는 최대 2개의 문자열이 저장 된다.
아래 처럼,
command = ["push","132"]
그래서 명령어는 index 0, 2nd argument 인 number는 index 1로 접근했다.
'프로그래밍 > programmers&bj' 카테고리의 다른 글
[python] 1254번: 팰린드롬 만들기 (0) | 2020.08.15 |
---|---|
[python] 1138번: 한 줄로 서기 (0) | 2020.08.14 |
[python] 백준 1010번: 다리 놓기 (0) | 2020.08.06 |
[python] 백준 1152번: 단어의 개수 (0) | 2020.08.06 |
[python] 백준 1902번: 수 찾기 (0) | 2020.08.06 |