[백준] 18258번 : 큐 2 (파이썬)

뚝딱이 공학도·2022년 4월 20일
0

문제풀이_백준

목록 보기
120/160



문제



나의 답안

from collections import deque
import sys
input=sys.stdin.readline

n=int(input())
que=deque()

def push(p):
    que.append(p)
def pop():
    if len(que)!=0:
        print(que.popleft()) #맨 앞 pop
    else:
        print(-1)

def size():
    print(len(que))

def empty():
    if len(que)==0:
        print(1)
    else:
        print(0)

def front():
    if len(que)!=0:
        print(que[0])
    else:
        print(-1)
    
def back():
    if len(que)!=0:
        print(que[-1])
    else:
        print(-1)
    
for i in range(n):
    command=input().split()
    if command[0]=='push':
        push(command[1])
    elif command[0]=='pop':
        pop()
    elif command[0]=='size':
        size()
    elif command[0]=='empty':
        empty()
    elif command[0]=='front':
        front()
    elif command[0]=='back':
        back()

접근 방법

  • 큐를 사용할 때 덱을 사용해주면 시간을 단축할 수 있다.
  • 덱 구현은 다음과 같다.
    덱을 사용하지 않은 큐는 다음과 같이 구현한다.
  • 다만 덱큐를 사용하면 pop 시 que.pop(0) 대신 popleft함수를 제공해주기 때문에 해당 함수를 사용해주면 된다.

0개의 댓글