
https://www.acmicpc.net/problem/10845
처음 시도
from collections import deque
N = int(input())
queue = deque()
for i in range(N):
command = input().split()
a = command[0]
b = command[1] if len(command) > 1 else None
if a == "push":
queue.append(b)
elif a == "pop":
if not queue:
print(-1)
else:
pop = queue.popleft()
print(pop)
elif a == "size":
print(len(queue))
elif a == "front":
if not queue:
print(-1)
else:
print(queue[0])
elif a == "back":
if not queue:
print(-1)
else:
print(queue[-1])
else:
if not queue:
print(1)
else:
print(0)
시간초과가 나왔다.
내가 봐도 좀 에반듯하긴 했다.
import sys
from collections import deque
input = sys.stdin.read
data = input().splitlines()
N = int(data[0])
queue = deque()
result = []
for i in range(1, N + 1):
command = data[i].split()
a = command[0]
b = command[1] if len(command) > 1 else None
if a == "push":
queue.append(b)
elif a == "pop":
if not queue:
result.append(-1)
else:
result.append(queue.popleft())
elif a == "size":
result.append(len(queue))
elif a == "empty":
result.append(1 if not queue else 0)
elif a == "front":
if not queue:
result.append(-1)
else:
result.append(queue[0])
elif a == "back":
if not queue:
result.append(-1)
else:
result.append(queue[-1])
sys.stdout.write("\n".join(map(str, result)) + "\n")

우리의 파이썬은 항상 시간이 문제다. 그러니 6렙찍고 sys를 사용하여 입출력에서 효율을 챙겨야 한다.
import sys를 하여 한 번에 입력 받고 결과를 한 번에 출력하자.
파이썬의 입출력은 sys를 안쓰면 베인으로 스태틱없이 3웨이브 먹는거랑 똑같다(느리다는 거임) 그나마 효율을 챙기려면 sys(스태틱)을 써야한다.