はじめに
アルゴリズムの勉強として、もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問 を写経読んでいます。
70問目まで終わりましたので、その感想を投稿いたします。
いいところ
アルゴリズムの説明がべったりとしておらず、(中級者以上の方は)サクサクと進められます。使用されているアルゴリズムは基本的なもの(二分探索、幅優先探索、順列組合せ、ユークリッドの互除法 等)です。
ソースの説明も最低限に抑えられており、下記のコードを見て、「ああ、インスタンスなハッシュね」とわかるレベルの人は、安心してお薦めできます。
@memo = {}
Ruby 2.5.0 で動作を確認されているそうですが、手元の環境 (Ruby 2.7.0) でも正常に動作しました。
悪いところ
いいところの裏返しで、初心者の方は、分からないところを自身で調べながら進める必要があります。
しかし、同じようなクラスやメソッドが繰り返し出現しますので、調べる量としてはそれほど多くないものと思われます。
また、一文字変数として W(大文字) と w(小文字)、i(アイ) と l(エル) と 1(イチ) が併用されており、初心者には辛いと思われます。
行き詰る前に、解答例をオフィシャルのHPからダウンロードし、それと自身の解答を WinMerge や VSCode で差分比較を行うことをお勧めいたします。
まとめ
- 一通り読んだ
- Ruby で写経した
- JavaScript はやってない
オフィシャルサイト
もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問