알고리즘
스택 #백준 10828
현쥬스주스
2021. 3. 15. 20:34
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
[ 문제 해결 방법 ]
해당 문제는 특별한 어려움 없이 조건대로만 코드를 작성해주면 된다. 대신 시간초과가 나기 쉽기 때문에 입력받을때 input() 대신 sys.stdin.readline()을 사용해주었다.
[ 소스코드 ]
import sys
n = int(input())
arr = []
for i in range(n) :
v = sys.stdin.readline().rstrip().split()
if v[0] == "push" :
arr.append(v[1])
elif v[0] == "pop" :
if len(arr) == 0 :
print(-1)
else :
print(arr[-1])
del arr[-1]
elif v[0] == "size" :
print(len(arr))
elif v[0] == "empty" :
if len(arr) == 0 :
print(1)
else :
print(0)
elif v[0] == "top" :
if len(arr) == 0 :
print(-1)
else :
print(arr[-1])