問題
A、C、K、S、T の順に文字が入力される。スタックを利用して、S、T、A、C、K という順に文字を出力するために、最小限必要となるスタックは何個か。ここで、どのスタックにおいてもポップ操作が実行されたときには必ず文字を出力する。また、スタック間の文字の移動は行わない。
選択肢
- 11
- 22
- 33
- 44
正解
3. 3
詳しい解説を見る解説を閉じる
解説
先に入力される A・C・K は、出力では最後に A・C・K の順(入力と同じ順)で出さなければなりません。スタックは後入れ先出し(LIFO)なので、A・C・K を一つのスタックに積むと取り出しは K・C・A の逆順になり、要求順を作れません。よって A・C・K はそれぞれ別のスタックに保持する必要があり、最低 3 個のスタックが要ります。後から入力される S・T はこれら3つのスタックの空きを使って即座に出力でき、追加のスタックは不要です。したがって最小は 3 個でウが正解です。(出典: 令和元年度 秋期 基本情報技術者試験 午前 問8)
一問一答
科目A 180問+科目B 60問