10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
처음에 input을 사용하여 값을 입력받았는데 시간 초과가 떴다 찾아보니 stdin.readline()을 사용하면 해결된다고 한다.
자세히는 모르겠으나 stdin.readline()이 input보다 더 빠르다고 한다.
from sys import stdin
N = int(stdin.readline())
stack = []
for i in range(N):
cmd = stdin.readline().split()
if cmd[0] == "push":
stack.append(cmd[1])
elif cmd[0] == "pop":
if len(stack) > 0:
print(stack.pop(-1))
else:
print(-1)
elif cmd[0] == "size":
print(len(stack))
elif cmd[0] == "empty":
if len(stack) > 0:
print(0)
else:
print(1)
elif cmd[0] == "top":
if len(stack) > 0:
print(stack[-1])
else:
print(-1)
'Programming > 백준' 카테고리의 다른 글
[백준 9012] [Python] 괄호 (0) | 2020.11.17 |
---|---|
[백준 10773] [Python] 제로 (0) | 2020.11.17 |
[백준 2798] [Python] 블랙잭 (0) | 2020.09.04 |
[백준 10162] [Python] 전자레인지 (0) | 2020.09.03 |
[백준 1541] [Python] 잃어버린 괄호 (0) | 2020.09.03 |
댓글