令和7年度 春期 応用情報技術者試験 午前 問5

テクノロジアルゴリズム

この問題は2025(R7)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

A, B, C の順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データの出力順序は何通りあるか。

スタックの動作を示す模式図
図の説明テキスト

スタックの動作を示す模式図。中央に上部が開いた縦長の長方形があり、中に縦書きで「スタック」と記されている。長方形の右側から「A, B, C」とラベルされた矢印がスタックの開口部に向かって入り込むように描かれている。また、スタック内部から上向きに出て左へ向かう矢印が描かれている。

解答・解説を読む

正解: 選択肢

スタックの性質

スタックは、後から入れたデータが先に取り出される LIFO (Last In, First Out: 後入れ先出し) のデータ構造です。
本問では、A, B, Cの順でデータが入力(挿入)され、任意のタイミングで取り出しを行うことで、出力される順序が何通りあるかを考えます。

出力可能な順序の列挙

A, B, C の入力順に対し、挿入と取出しのタイミングを変えることで、以下の 5通り の出力順序が可能です。

  1. A, B, C
    • A挿入 → A取出し → B挿入 → B取出し → C挿入 → C取出し
  2. A, C, B
    • A挿入 → A取出し → B挿入 → C挿入 → C取出し → B取出し
  3. B, A, C
    • A挿入 → B挿入 → B取出し → A取出し → C挿入 → C取出し
  4. B, C, A
    • A挿入 → B挿入 → B取出し → C挿入 → C取出し → A取出し
  5. C, B, A
    • A挿入 → B挿入 → C挿入 → C取出し → B取出し → A取出し

出力不可能な順序

考えられる順列 3!=63! = 6 通りのうち、出力できない順序は C, A, B の1通りだけです。
Cを最初に取出すためには、A, B, Cをすべて挿入した状態にする必要があります。その時点でスタックには底からA, Bの順に積まれているため、Cの次に取出すことができるのは必ず一番上の B となり、Aを取出すことはできません。

各選択肢の解説

  • (3): 出力可能なパターンを網羅できていないため誤りです。
  • (4): 出力可能なパターンを網羅できていないため誤りです。
  • (5): 全ての出力可能なパターンを正しく数え上げているため、これが 正解 です。
  • (6): 単純な順列の数(3!3!)ですが、スタックの制約上「C, A, B」は出力できないため誤りです。