나의 답 (시간 초과)
N = int(input())
stack = []
mode = {"pop": 0 ,"size":1,"empty":2,"top":3, "push" : 4}
for i in range (N):
li = input().split()
if len(li) == 2:
stack.append(li[1])
continue
index = mode[li[0]]
n = len(stack)
if index == 0:
if n==0:
print(-1)
else:
print(stack.pop())
elif index == 1:
print(len(stack))
elif index == 2:
if n==0:
print(1)
else:
print(0)
elif index == 3:
if n == 0:
print(-1)
else:
print(stack[n-1])
도저히 줄이려고 해도 시간 초과가 나서 답을 봐버렸다.
입력 받는 함수를 input() 이 아닌, sys.stdin.readLine()을 쓰니 통과할 수 있었다.
딕셔너리도 간만에 쓰고, ㅎ_ㅎ 시간을 줄여보려고 했지만 입력받는 함수가 문제였던 것 .. !
import sys
N = int(sys.stdin.readline())
stack = []
mode = {"pop": 0 ,"size":1,"empty":2,"top":3,"push":4}
for i in range (N):
li = sys.stdin.readline().split()
n = len(stack)
index = mode[li[0]]
if index == 0:
if n==0:
print(-1)
else:
print(stack.pop())
elif index == 1:
print(len(stack))
elif index == 2:
if n==0:
print(1)
else:
print(0)
elif index == 3:
if n == 0:
print(-1)
else:
print(stack[-1])
elif index == 4:
stack.append(li[1])
🌟🌟🌟🌟🌟🌟🌟
입출력 속도 비교 : sys.stdin.readline > raw_input() > input()
'코딩테스트' 카테고리의 다른 글
[Python] 백준 20310번 - 타노스 (0) | 2024.06.06 |
---|---|
[Python] 백준 1193번 - 분수찾기 (1) | 2024.06.04 |
[Python] 백준 21921 블로그 (0) | 2024.05.31 |
[Python] 백준 2960번 - 에라토스테네스의 체 (1) | 2024.05.30 |
[Python] 백준 12789번 - 도키도키 간식드리미 (0) | 2024.05.30 |