먼저 들어간 데이터가 먼저 나오는 '큐(Queue)'
큐(Queue)는 먼저 들어간 데이터가 먼저 나오는 자료구조로, 이를 선입선출(First In, First Out, FIFO)
방식이라고 합니다.
일상생활에서 줄을 서는 상황과 유사하게 동작하며, 데이터가 순서대로 처리되는 것이 특징입니다.
큐는 여러 작업이 대기 중일때, 요청된 순서대로 작업을 처리하는 작업 스케쥴링이나 프린터 작업 대기열 등에 사용됩니다.
큐의 주요 연산
큐는 선입선출(FIFO) 원리에 기반하며, 다음과 같은 주요 연산을 제공합니다.
-
Enqueue
: 큐의 뒤쪽(tail)에 요소를 추가합니다. 새로 추가된 요소는 큐의 마지막 위치에 배치됩니다. -
Dequeue
: 큐의 앞쪽(head)에서 요소를 제거하고, 제거된 요소를 반환합니다. 요소가 제거되면 다음 요소가 큐의 새로운 앞쪽이 됩니다. -
Peek 또는 Front
: 큐의 맨 앞 요소를 조회합니다. 조회된 요소는 제거되지 않고 그대로 유지됩니다. -
IsEmpty
: 큐가 비어 있는지 확인합니다. 큐에 요소가 없으면True
를, 그렇지 않으면False
를 반환합니다.
큐는 어떻게 구현 수 있나요?
파이썬에서는 리스트를 사용해 단순한 큐를 구현할 수 있지만, 효율성을 위해 collections
모듈의 deque
클래스를 사용하는 것이 일반적입니다.
deque
는 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조입니다.
큐 구현 예시
# collections 모듈에서 deque 클래스를 불러옴 from collections import deque # 큐 생성 queue = deque() # Enqueue 연산 queue.append('A') # A 추가 queue.append('B') # B 추가 # Dequeue 연산 print(queue.popleft()) # 'A' 출력 및 제거 print(queue.popleft()) # 'B' 출력 및 제거
클래스(Class)
를 활용해 보다 세밀하게 큐를 구현한 예제는 오른쪽 코드 에디터에서 확인할 수 있습니다.
Mission
0 / 1
빈칸에 들어갈 가장 적절한 단어는 무엇일까요?
큐(Queue)의 주요 연산 중 큐의 앞쪽에 있는 요소를 조회하는 연산은 입니다.
Enqueue
Dequeue
Peek 또는 Front
IsEmpty
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과