https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
풀이
import sys
input = sys.stdin.readline
n = int(input())
a = []
for _ in range(n):
x=input().split()
if x[0]=="push": a.append(x[1])
elif x[0]=="pop": print(-1 if len(a)==0 else a.pop())
elif x[0]=="size":print(len(a))
elif x[0]=="empty":print(1 if len(a)==0 else 0)
elif x[0]=="top": print(-1 if len(a)==0 else a[-1])
조건문으로 나누어서 풀어주었다.
sys.stdin.readline을 쓰지 않으면 시간초과가 난다.
'코딩테스트 > Python' 카테고리의 다른 글
| [Python] 백준 #9012 - 괄호 (0) | 2021.12.02 |
|---|---|
| [Python] 백준 #10773- 제로 (0) | 2021.12.01 |
| [Python] 백준 #5086 - 배수와 약수 (0) | 2021.12.01 |
| [Python] 백준 #15652 - N과 M (4) (0) | 2021.12.01 |
| [Python] 백준 #15651 - N과 M (3) (0) | 2021.12.01 |