[Python] 백준 18258 큐2

eun·2024년 1월 22일

문제 18258

먼저 위 문제를 이해해보자.

  • 큐를 구현한 후, 여섯가지의 명령을 수행하도록 하는 문제이다.
  • 첫번째 줄에는 명령의 수 n이 주어진다.
  • 그 다음부터 n개의 명령 줄이 주어진다.
# 18258

import sys
from collections import deque

n = int(sys.stdin.readline().rstrip())
lst = deque()

def use_queue(q):
    if q[0] == "push":
        lst.append(q[1])
    elif q[0] == "pop":
        if len(lst) == 0:
            print(-1)
        else:
            print(lst.popleft())
    elif q[0] == "size":
        print(len(lst))
    elif q[0] == "empty":
        if len(lst) == 0:
            print(1)
        else:
            print(0)
    elif q[0] == "front":
        if len(lst) == 0:
            print(-1)
        else:
            print(lst[0])
    elif q[0] == "back":
        if len(lst) == 0:
            print(-1)
        else:
            print(lst[len(lst) - 1])


for i in range(n):
    q = sys.stdin.readline().split()
    use_queue(q)

처음에는 pop(0)을 했더니 시간초과가 발생했다. 이후 deque를 import하여 popleft()를 사용해서 해결했다.

0개의 댓글