소스 코드

import sys
from collections import deque
n = int(sys.stdin.readline().rstrip())
board = deque()
ans = deque()

for q in range(n):
    word = list(map(str,sys.stdin.readline().rstrip().split()))

    if word[0] == 'push':
        board.append(int(word[1]))
    elif word[0] == 'pop':
        if len(board) == 0:
            ans.append(-1)
        else:
            ans.append(board.popleft())
    elif word[0] == 'size':
        ans.append(len(board))
    elif word[0] == 'empty':
        if len(board) == 0:
            ans.append(1)
        else:
            ans.append(0)
    elif word[0] == 'front':
        if len(board) == 0:
            ans.append(-1)
        else:
            ans.append(int(board[0]))
    else:
        if len(board) == 0:
            ans.append(-1)
        else:
            ans.append(int(board[-1]))

for w in ans:
    print(w)

 


해결 방법

1. 시간초과를 해결하는 것이 가장 큰 문제

1) queue 대신 itertools의 deque 사용

=> 시간 초과 해결 X

2) input() 대신에 sys.stdin.readline() 사용

=> 시간 초과 해결 O


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.