020-004-005

キュー管理:順番待ちシステム

初級

問題説明

キュー管理:順番待ちシステム

この問題では: Queue<String>を使って顧客の順番待ちリストをFIFO(先入れ先出し)順で管理し、待機中の顧客一覧と案内順序を標準出力に表示するプログラムを作成します。

Learning Objectives

応用レベルの学習目標

Queueを用いたFIFO(先入れ先出し)データ管理を実務レベルで実装できる。

Practical Goals (4 items)

  1. Queueの宣言と初期化ができる【Apply】
  2. offer()とpoll()でキュー操作ができる【Apply】
  3. キューの状態に応じた処理分岐を実装できる【Apply】
  4. 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]
...

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

入力:
3
Alice
Bob
Charlie
期待される出力:
Waiting Queue:
1. Alice
2. Bob
3. Charlie
Serving Order:
Alice
Bob
Charlie
入力:
1
Ivy
期待される出力:
Waiting Queue:
1. Ivy
Serving Order:
Ivy
入力:
5
David
Emily
Frank
Grace
Henry
期待される出力:
Waiting Queue:
1. David
2. Emily
3. Frank
4. Grace
5. Henry
Serving Order:
David
Emily
Frank
Grace
Henry
入力:
2
Alice
Bob
期待される出力:
Waiting Queue:
1. Alice
2. Bob
Serving Order:
Alice
Bob
❌ テストに失敗したケースがあります
❌ エラー発生

あなたの解答

現在のモード: 自分のコード
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください

sc.close();
}
}
0 B / 5 MB

残り 9 回実行可能