알고리즘/python
[python/파이썬] 백준 10828 스택
ㅌㅇㄴ
2022. 12. 14. 22:33
반응형
[문제 출처]
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
[소스 코드]
명령어에 따라 동작하는 함수를 작성하고 n번만큼 실행해주었다.
각 명령어에 따라서 경우를 나눠주면 되는 문제이다.
하지만 그다지 효율적으로 코드를 짠 것 같지는 않다.
단순히 input() 함수를 사용하면 시간 초과가 나오기 때문에 readline() 함수를 사용해주어야 한다.
#10828
import sys
input = sys.stdin.readline
stk = []
def comm():
c = list(input().split())
if len(c) == 1:
if c[0] == 'size':
print(len(stk))
elif c[0] == 'empty':
if len(stk) == 0:
print(1)
else:
print(0)
elif len(stk) == 0:
print(-1)
elif c[0] == 'top':
print(stk[-1])
elif c[0] == 'pop':
tmp = stk[-1]
del stk[-1]
print(tmp)
else:
if c[0] == 'push':
stk.append(c[1])
n = int(input())
for i in range(n):
comm()
반응형