この質問は、私がこの問題にどのようにアプローチできるかについての思考/洞察をどこで探しているのかを探るアルゴリズム/アプローチの詳細です。私は一連のプログラミング問題をブラウズしており、アイテムのリストをソートするのに必要な最小限の移動数を提供する必要がある1つの質問に出くわしました。この問題は「Easy」とマークされていますが、私はこれに対して良い解決策を見つけることはできません。あなたの考えは大歓迎です。 問題文は次のようなものです。最小の移動数でディスクのセットを並べ替える
Xには同じ半径のN個のディスクがあります。すべてのディスクには1からNまでの固有の番号が付いています。ディスクはランダムな順序で1つのパイルに重ねて配置されます。 Xはディスクのこの山を上から下に向かって昇順にソートしたいと考えています。しかし、彼はこれを行うための非常に特殊な方法を持っています。 ひとつのステップでは、彼は山から1枚のディスクしか選択できません。彼は一番上に置くことができます。。そして、Xは可能な最小限のステップでディスクの山を並べ替えることを望んでいます。ランダムに順序付けられたディスクのこの山をソートするのに必要な最小限の移動回数を見つけることができますか?
のように見えますが、杭を並べ替える貪欲アルゴリズムがあります。多くの場合、すべてのディスクが1回だけ選択されます。各ステップでディスクをピックし、上に移動します。 3つの点を自分のものに置き換えることは、楽しいことですので、私はそれをあきらめません。 – Henry
チェック[パンケーキソート](https://en.wikipedia.org/wiki/Pancake_sorting) –