正解は ウ
スタック(LIFO: 後入れ先出し)の動作を問う問題です。入力順は A、C、K、S、T で、出力順は S、T、A、C、K にしたい。ポップしたら必ず出力する(取り出して保留はできない)、スタック間の文字移動は不可、という制約があります。まず出力の前半を考えると、S と T は入力された時点で即座に出力すればよいので、どれかのスタックに積んですぐポップすれば済みます。問題は A、C、K の3文字です。これらは S、T より先に入力されますが、出力は S、T の後で、しかも入力と同じ順序(A→C→K)で出力しなければなりません。スタックは後入れ先出しの構造なので、同じスタックに2文字以上積むと取り出し順が必ず逆転します。例えば A と C を同じスタックに積むと C が先に出てしまい、A→C の順に出力できません。したがって A、C、K はそれぞれ別のスタックに1文字ずつ保管するしかなく、最低3個のスタックが必要です。S と T は既存の3個のうち空いているスタックを使い回せるため追加は不要で、ウが正解です。
スタック問題は「同じスタックに積んだ2文字は必ず逆順で出る」が判断基準。入力順のまま出力したい文字の数だけスタックが要る、と整理すると速い。