平成24年度春期 応用情報技術者試験 午前 問6

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

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

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  3
  2.  4
  3.  5
  4.  6
解答・解説を見る

正解:ウ

AI解説

スタックは LIFO(後入れ先出し)構造であり、A, B, C の順に入力しながら任意のタイミングで取り出すと、得られる出力順は3個の場合5通りである。全順列6通りのうち C, A, B の順だけは実現できない。C を最初に出力するには A, B, C を全部積む必要があり、その後は必ず B, A の順でしか取り出せないからである。 ア: 3通りは数え漏れである。ABC, ACB, BAC, BCA, CBA が可能である。 イ: 4通りも数え漏れである。 ウ: 正解。実現可能な出力順は5通り(不可能なのは CAB のみ)である。 エ: 6通りは全順列を可能とみなした誤りで、CAB が不可能なことを見落としている。 💡 n 個のスタック出力順の総数はカタラン数で、n=3 なら5、n=4 なら14。試験では「どの順が不可能か」を具体的に考えると確実である。

出典:平成24年度 春期 応用情報技術者試験 午前 問6 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問