alphabet_array = ["e","d","c","b","a"]を何回置換させたら元の順序に戻るかを計算させたいです。
この例だと、
["e","d","c","b","a"]→["a","d","c","b","e"]→["a","b","c","d","e"]
1 2
で2回置換させたら元の順序に戻ることがわかります。
なので最終的に2回の2を出力させるアルゴリズムを作りたいです。
alphabet_array = ["e","d","c","b","a"] backup = alphabet_array[:] alphabet_array.sort() count =0 for i in range(5): if alphabet_array[i] != backup[i]: count +=1 x = backup.index(alphabet_array[i]) backup[i], backup[x] = backup[x], backup[i] print(count)
とコードを書いたのですがfor文のところで時間がかかってしまいます。
もっと速く処理できる方法(コード)はないでしょうか?
Paizaの問題でしょうけど、アルゴリズムをもう少し見直してみてはいかがでしょう?こんな力技みたいなことはしなくて済みますよ
Paizaの問題ではないです。修正点を探しているのですが、わからなくて...。具体的にどんなところを直せばいいとかキーワードで検索すればヒントが出てくるとかありましたら教えてください。
失礼しました。次にした質問に関してはPaizaですよね?そこが分かっていないと迂闊に回答できませんので
次にした質問がどのことかわからないのですが、ハノイの塔の質問はpaizaではなく、TypeErrorの方はpaizaででできたアルゴリズムを全く別のデータで試しているものです。
はい、その質問は削除してもらっています。。。
回答1件
あなたの回答
tips
プレビュー