正解は ウ
A・B・Cの順に入力されるデータを、各データについてスタックへの挿入と取出しを1回ずつ行う場合の出力順序の組み合わせ数を求めます。スタックはLIFO(後入先出し)構造です。各ステップで「次の入力をスタックにプッシュ」か「スタックからポップして出力」を選択できます。全組み合わせを列挙すると: ①A→B→C出力(ABC) ②A→B出力→C出力→A出力→(BAC、BCx不可) ③A→B→C→Cポップ→Bポップ→Aポップ(CBA) ④A→Aポップ→B→C→Cポップ→Bポップ(ACB) ⑤A→Aポップ→B→Bポップ→C→Cポップ(ABC=重複)。正しく列挙するとABC、ACB、BAC、BCA、CBAの5通りです(AとBとCの一部だけが有効)。スタックの制約上CBxAやxCABなど一部の並びは不可能で、合計5通りが正解です。
スタックで作れない順列の見分け方:「後に入れたものが先に出る必要がある」制約に違反するものを排除する。n要素のスタック出力順序はカタラン数C(n)で、n=3のときC(3)=5。n=4ではC(4)=14。