JudgeをRubyで解いたりした。アルゴリズム自体はもう問題に擬似プログラミング言語で書いてあるので解くだけなら悩むことはないけれど、理解しようとしてそこそこ考えた。6行目と8行目でA[j+1]にA[j]とvを代入しているけれど、これって後者だけが有効で意味なくね?とか思ってしまったのだ。見てみれば、7行めでj--がされているので、8行目のA[j+1]は6行目のA[j+1]とは別のものなんだよね。A[j]をしているのが配列の中の数字を右に一つずらしている作業で、なんでずらしているかっていうとA[i]がその位置より左にあるものより小さかった時、正しい並び順の位置に移動させるためにやっているのであって、whileループの初回のA[j+1]っていうのはA[i]と同じものだったということに気がついたりもした。A[i]がその位置より左にあるものより小さかった時、っていう条件を、if文でやらずにwhileの条件でまとめられているのがまたいいなぁ、とか。いう小さな気づきが重なるのが楽しい。え、お前そのくらい大学で勉強しただろって?したけど忘れてしまっていたよ...。(25)はてなブログをはじめよう!KZEさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。