백준

백준 10845 문제풀이 [python]

ys.k 2023. 6. 14. 00:08

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

큐를 배우기 위한 문제이다.

 

설명은 필요 없다.

 

코드를 보자.

 

import sys as s
from collections import deque
a = int(input())

queue= deque()

def q_push(n):
    queue.append(n)

def q_pop():
    if(len(queue) == 0):
        print('-1')
        return
    print(queue.popleft())

def q_size():
    print(len(queue))

def q_empty():
    if len(queue)== 0 :
        print('1')
    else:
        print('0')

def q_front():
    if len(queue) == 0 :
        print('-1')
    else:
        print(queue[0])

def q_back():
    if len(queue) == 0 :
        print('-1')
    else:
        print(queue[-1])


       
for i in range(a):
    cmd=s.stdin.readline().strip().split()

    if cmd[0] == 'push' :
        q_push(cmd[1])
    elif cmd[0] == 'pop' :
        q_pop()
    elif cmd[0] == 'size' :
        q_size()
    elif cmd[0] == 'empty' :
        q_empty()
    elif cmd[0] == 'front' :
        q_front()
    elif cmd[0] == 'back' :
        q_back()

 

배운 점

1. queue를 만들 때, deque()를 사용하면 양방향 입 출력이 가능한 큐가 생성되고, list 혹은 배열로 만들 경우 단방향 큐가 된다.