Oh My Algorithm
Algorithm Guidecomplexity: O(1) enqueue/dequeue

큐 (Queue)

먼저 넣은 것을 먼저 꺼내는 선입선출(FIFO) 구조입니다. 뒤(rear)에서 넣고 앞(front)에서 빼며, BFS·작업 대기열·버퍼링의 기반이 됩니다.

01큐 (Queue)

큐 시작. 뒤(rear)로 넣고 앞(front)으로 빼는 선입선출(FIFO) 구조입니다.

enqueue(10) · 뒤에 10을 추가합니다.

enqueue(24) · 뒤에 24를 추가합니다.

enqueue(37) · 뒤에 37을 추가합니다.

dequeue() · 가장 앞(front)의 10을 꺼낼 대상으로 표시합니다.

10이 빠지고 24가 새로운 front가 됩니다. 가장 먼저 넣은 값이 가장 먼저 나옵니다.

enqueue(55) · 빈 자리가 생긴 게 아니라, 뒤에 이어서 55를 추가합니다.

dequeue() · front의 24가 나갑니다. 넣은 순서 그대로 빠지는 FIFO를 확인했습니다.

empty
1 / 8

02 쉽게 이해하기

For Everyone
🔑핵심 동작

넣는 쪽과 빼는 쪽이 반대입니다. 그래서 먼저 넣은 것이 먼저 나옵니다.

💡쉽게 말하면

뒤(rear)로 들어가 앞(front)으로 나옵니다.

먼저 넣은 것이 먼저 나와요(선입선출, FIFO).

📍어디에 쓰나
  • 프린터 인쇄 대기열
  • 고객센터 대기 순번
  • 작업 순서 처리

03 파이썬 구현 코드

큐 (Queue)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.

core_implementation.py
from collections import deque

class Queue:
    def __init__(self):
        self.items = deque()

    def enqueue(self, x):
        self.items.append(x)

    def dequeue(self):
        if not self.items:
            raise IndexError("queue is empty")
        return self.items.popleft()

    def peek(self):
        return self.items[0] if self.items else None

04 자주 묻는 질문

FAQ
큐 (Queue)란 무엇인가요?+

먼저 넣은 것을 먼저 꺼내는 선입선출(FIFO) 구조입니다. 뒤(rear)에서 넣고 앞(front)에서 빼며, BFS·작업 대기열·버퍼링의 기반이 됩니다.

큐 (Queue)의 시간복잡도는 어떻게 되나요?+

큐 (Queue)의 시간복잡도는 O(1) enqueue/dequeue 입니다. 시각화의 단계별 진행을 따라가며 왜 이런 복잡도가 나오는지 직접 확인할 수 있습니다.

큐 (Queue)은(는) 어디에 사용하나요?+

프린터 인쇄 대기열, 고객센터 대기 순번, 작업 순서 처리.

큐 (Queue)를 쉽게 비유하면?+

넣는 쪽과 빼는 쪽이 반대입니다. 그래서 먼저 넣은 것이 먼저 나옵니다.