본문으로 건너뛰기
자료구조 · 알고리즘 기초집LESSON 07

큐와 덱: 대기열과 작업 순서 관리

난이도초급 → 중급 입문
예상 시간40분
선수지식이전 강의

07강. 큐와 덱: 대기열과 작업 순서 관리

1. 이번 강의에서 해결할 문제

먼저 대기한 플레이어를 먼저 처리하면서도 운영자 긴급 작업은 앞에 넣어야 하는 요구를 목록 인덱스 조작 없이 표현해야 합니다.

2. 학습 목표

3. 핵심 개념

큐는 먼저 들어온 값이 먼저 나가는 FIFO 구조이고, 덱은 양쪽 끝에서 추가·제거할 수 있습니다. Queueoffer, poll, peek는 실패나 빈 상태에 특별 값을 반환하는 계열이고 add, remove, element는 예외 계열입니다. null을 저장하지 않는 ArrayDeque와 함께 쓰면 poll의 null을 빈 상태로 해석할 수 있습니다.

4. 단계별 실습

1. 예제 파일 작성

실행 환경: 코드 편집기

실행 위치: C:\dev\game-ranking-algorithms

실행 전 확인: 같은 이름의 파일이 있다면 덮어쓰기 전에 Git diff로 변경 범위를 확인합니다. 선택한 LTS JDK의 java -versionjavac -version이 모두 실행되어야 합니다.

대상 파일: src/MatchQueue.java

src/MatchQueue.java
import java.util.ArrayDeque;
import java.util.Deque;

public class MatchQueue {
public static void main(String[] args) {
Deque<String> players = new ArrayDeque<>();
players.offerLast("P1");
players.offerLast("P2");
players.offerFirst("ADMIN_TEST");

String player;
while ((player = players.pollFirst()) != null) {
System.out.println("매칭: " + player);
}
System.out.println("남은 인원: " + players.size());
}
}

2. PowerShell에서 컴파일·실행

실행 환경: Windows PowerShell

실행 위치: C:\dev\game-ranking-algorithms

실행 전 확인: src/MatchQueue.java가 저장되었고 out 폴더에는 삭제해도 되는 컴파일 결과만 있는지 확인합니다.

대상: src/MatchQueue.javaout 아래 생성되는 class 파일

Windows PowerShell
Set-Location C:\dev\game-ranking-algorithms
New-Item -ItemType Directory -Force .\out | Out-Null
javac -Xlint:all -d .\out .\src\MatchQueue.java
java -cp .\out MatchQueue

예상 결과: ADMIN_TEST, P1, P2 순서로 처리되고 남은 인원 0이 출력됩니다.

실행 시간은 PC의 CPU·메모리, JDK 버전, JVM 워밍업, 백그라운드 작업과 입력 분포에 따라 달라질 수 있습니다. 측정값은 같은 조건에서 여러 번 비교하고 Big-O 분석과 함께 해석합니다.

5. 코드와 알고리즘이 동작하는 이유

일반 플레이어는 뒤에 넣고 앞에서 꺼내 FIFO를 유지합니다. 긴급 작업만 앞에 넣습니다. ArrayDeque 양끝 추가·삭제는 일반적으로 O(1)이고 전체 n명을 처리하므로 전체 루프는 O(n), 저장 공간은 O(n)입니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

큐와 덱: 대기열과 작업 순서 관리 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“큐와 덱: 대기열과 작업 순서 관리” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“큐와 덱: 대기열과 작업 순서 관리”에서 ‘ArrayList의 remove(0)로 큐 만들기’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

07강. 큐와 덱: 대기열과 작업 순서 관리 미완료 상태