[Python] BOJ 18258: 큐2

Binsu·2021년 8월 15일
0

Algorithms

목록 보기
9/22

큐(Queue)란?

그림 출처 : https://galid1.tistory.com/483

큐는 선입선출(First-In First-Out) 구조다. 큐에 데이터를 추가하는 작업을 인큐(enqueue), 데이터를 꺼내는 작업을 디큐(dequeue)라고 한다. 그리고 데이터를 꺼내는 쪽은 프런트(front), 데이터를 넣는 쪽을 리어(rear)라고 한다.

문제

풀이

import sys

N = int(sys.stdin.readline())

queue = []
cnt = 0  # 큐의 맨 앞을 가리키는 인덱스 값을 가리키는 변수

for i in range(N):
    order = list(sys.stdin.readline().split())
    if order[0] == 'push':
        queue.append(int(order[1]))

    elif order[0] == 'pop':
        if len(queue) - cnt == 0:   # 큐의 길이와 카운터를 빼서 0이라면 큐는 빈 상태
            print(-1)
        else:
            print(queue[cnt])
            cnt += 1    # pop 할때마다 cnt에  1을 누적

    elif order[0] == 'size':
        print(len(queue)-cnt)

    elif order[0] == 'empty':
        if len(queue)-cnt == 0:  # 큐가 비어있으면 1을 출력
            print(1)
        else:
            print(0)

    elif order[0] == 'front':
        if len(queue)-cnt == 0:  # 큐가 비어있다면 -1을 출력
            print(-1)
        else:
            print(queue[cnt])   # 큐의 가장 앞에 있는 원소 출력
    elif order[0] == 'back':
        if len(queue)-cnt == 0:  # 큐가 비어있다면 -1을 출력
            print(-1)
        else:
            print(queue[-1])    # 큐의 가장 뒤에 있는 원소 출력

0개의 댓글