020-004-005
キュー管理:順番待ちシステム
初級
問題説明
キュー管理:順番待ちシステム
この問題では: Queue<String>を使って顧客の順番待ちリストをFIFO(先入れ先出し)順で管理し、待機中の顧客一覧と案内順序を標準出力に表示するプログラムを作成します。
Learning Objectives
応用レベルの学習目標
Queueを用いたFIFO(先入れ先出し)データ管理を実務レベルで実装できる。
Practical Goals (4 items)
- Queueの宣言と初期化ができる【Apply】
- offer()とpoll()でキュー操作ができる【Apply】
- キューの状態に応じた処理分岐を実装できる【Apply】
- LinkedList vs ArrayDequeの選択理由を説明できる【Analyze】
Real-World Scenario
Scenario Type: Both
Business Context
人気ラーメン店の順番待ちシステムを想像してください。お客様は到着順にリストに追加され、席が空くと先頭のお客様から案内されます。公平性が重要で、割り込みは許されません。
System Context
メッセージキューやタスクキューも同じ原理です。Webサーバーが受け取ったリクエストをキューに追加し、ワーカースレッドが順に処理します。これによりピーク時の負荷を平準化できます。
Why This Matters
- 公平な順序処理の基盤パターン
- メッセージキュー、タスクキューの基礎
- イベント駆動アーキテクチャの要素
入力
1行目: お客様の人数(整数、1-10人)
2~N+1行目: お客様の名前(文字列)
出力
Waiting Queue:
1. [名前1]
2. [名前2]
...
Serving Order:
[名前1]
[名前2]
...
