정의
큐(Queue)는 선입선출(FIFO, First In First Out) 방식의 자료구조입니다. 가장 먼저 넣은 것이 가장 먼저 나오는, 마치 줄을 서는 것과 같은 구조입니다.
핵심 특성
- ✓FIFO (First In, First Out) 구조 - 먼저 들어간 것이 먼저 나옴
- ✓Enqueue와 Dequeue 연산이 O(1) 시간에 가능
- ✓Front(앞)과 Rear(뒤) 두 개의 포인터로 관리
- ✓BFS(너비 우선 탐색), 작업 스케줄링 등에 활용
활용 사례
이런 상황에서 사용됩니다:
🏦
은행 대기줄
먼저 온 고객이 먼저 서비스를 받습니다. 실생활에서 가장 흔하게 볼 수 있는 큐의 예입니다.
🖨️
프린터 대기열
여러 사람이 프린터를 사용할 때, 먼저 요청한 작업이 먼저 출력됩니다.
🌳
BFS 탐색
그래프나 트리를 너비 우선으로 탐색할 때 큐를 사용합니다. 가까운 정점부터 차례로 방문합니다.
⚙️
작업 스케줄러
운영체제나 프로그램에서 작업을 순서대로 처리할 때 큐를 사용합니다.
주요 연산
주요 연산들:
enqueue
O(1)큐의 뒤(Rear)에 새로운 요소를 추가합니다.
dequeue
O(1)큐의 앞(Front)에서 요소를 제거하고 반환합니다.
front / peek
O(1)큐의 맨 앞 요소를 제거하지 않고 확인합니다.
isEmpty
O(1)큐가 비어있는지 확인합니다.
복잡도
시간 복잡도
최선
O(1)
평균
O(1)
최악
O(1)
공간 복잡도
O(n)
시각화로 더 깊이 이해하기
단계별 애니메이션과 코드 실행을 통해 알고리즘이 어떻게 동작하는지 직접 확인하세요.
시각화 시작하기