Que

DATA STRUCTURE

큐 (Queue)

enqueue와 dequeue, 두 가지 연산만으로 먼저 넣은 값을 가장 먼저 꺼내는 FIFO(First In, First Out) 구조를 확인하세요. 대기열 처리, 프린터 작업열, BFS가 왜 큐를 쓰는지 같은 실제 시나리오를 단계별로 재생하거나, 직접 값을 넣고 빼며 규칙을 몸으로 익힐 수 있습니다.

◀ FRONT (다음에 나갈 값) REAR (방금 들어온 값) ▶

재생 버튼을 누르거나 다음 단계 버튼으로 큐 연산을 시작하세요.

enqueue 0회 · dequeue 0회

1 / 1

속도
큐 내부 값 FRONT (다음에 나갈 값) 방금 enqueue된 값 dequeue 실패 (언더플로우)

PSEUDOCODE

enqueue(value):  array.append(value)  // REAR에 추가dequeue():  if array가 비어있음: return 오류 (언더플로우)  value ← array.removeFirst()  // FRONT에서 제거  return value

어떻게 동작하나요

큐는 먼저 넣은 데이터가 가장 먼저 나오는 FIFO(First In, First Out) 구조입니다. enqueue는 REAR(뒤쪽)에 값을 하나 추가하고, dequeue는 FRONT(앞쪽) 값 하나만 꺼내 제거합니다. 들어온 순서를 그대로 지킨다는 특징 덕분에 "먼저 온 사람을 먼저 처리한다"는 문제 — 대기열, 프린터 작업열, 너비 우선 탐색(BFS) — 를 자연스럽게 표현합니다. 큐가 비어 있을 때 dequeue를 시도하면 꺼낼 값이 없는 "언더플로우" 상태가 됩니다.

시간·공간 복잡도

enqueue
O(1)
dequeue
O(1)
peek (FRONT 조회)
O(1)
임의 위치 접근
불가 (전부 dequeue 필요)
공간 복잡도
O(n)

FRONT/REAR 양쪽 끝에서만 값을 다루기 때문에(구현에 따라 dequeue가 배열 전체를 앞으로 당길 수도 있지만, 원형 큐나 연결 리스트로 구현하면) enqueue/dequeue 모두 O(1)입니다 — 스택과 달리 넣는 곳과 빼는 곳이 서로 반대쪽이라는 점이 핵심 차이입니다.

다른 자료구조(연결 리스트·해시 테이블·힙·이진 탐색 트리)도 이어서 시각화할 예정입니다 — Algorithm 코스로 돌아가기

1:1 정원제 · 상시 모집

자료구조도 손으로 직접 다뤄봐야 오래 남습니다

당신에게 맞는 커리큘럼은 1:1 상담에서부터 시작됩니다.