入力順と出力順を追うと、同一スタック内の後入れ先出しだけでは処理できず、最小3個必要

入力順と出力順を追うと、同一スタック内の後入れ先出しだけでは処理できず、最小3個必要なのでウです。 $S$が入力されるまでに$A,C,K$を保持する必要があります。後で$A,C,K$の順に出すには、入力順の早い文字が後の文字の下に埋もれないよう3個のスタックへ分ける必要があり、3個あれば実現できます。 $S$の入力前に$A,C,K$を保存する。 出力は$A,C,K$の順なので、LIFOで順序が逆転しないよう3文字を別々のスタックへ置く。 $S,T$は入力時にそのまま出力でき、最小数は3、すなわちウとなる。 例えばスタック1つに A, C, K を積むと、取り出せる順は K, C, A になってしまいます。2つでも、どれか2文字が同じスタックに重なり、下の文字を先に出せません。

A,C,K,S,Tの順に文字が入力される。スタックを利用して,S,T,A,C,Kという順に文字を出力するために,最小限必要となるスタックは何個か。ここで,どのスタックにおいてもポップ操作が実行されたときには必ず文字を出力する。また,スタック間の文字の移動は行わない。

出典令和元年度 秋期 基本情報技術者試験 午前 問8
ア
1
イ
2
ウ
3
エ
4