nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

『問題解決力を鍛える!アルゴリズムとデータ構造』を読んだ

honto.jp

『問題解決力を鍛える!アルゴリズムとデータ構造』をようやく読み終わったのですが、とてもいい本だったので、読書感想文をブログに残しておきたいと思います。なおここでの読んだというのはまず全体を一読して、章末問題をすべて解いたという状態です。章末問題についてはどうも公式の解答がないらしいので、わたしの解答集を置いておきますね。もちろん内容は無保証です。

github.com

本書はタイトルの通り、アルゴリズムに関する本です。この手の本はアルゴリズムを紹介して終わりというものが多いなか、アルゴリズムを解析する、アルゴリズムを適切に設計する、現実社会の問題にアルゴリズムを適用するというところにまで話が及んでいるところに特徴があります。アルゴリズムを勉強してよくあるのは、「こういうアルゴリズムがあることはわかった。じゃあこれをどう活用するのか」ということで、単にアルゴリズムの目録を眺めているだけで幸せだという人は別として、どう実用するのかがわかったほうがいい人にとっては良書だと思います。

本書はアルゴリズムを学習するにあたって、競技プログラミングを活用しています。個人的な話をすると、最近は無期限休業状態ですが、5-6年ぐらい競技プログラミングには取り組んできました。その中で自分はアルゴリズム関連の知識を付け焼刃的に学んできたのですが、本書をそれを一気通貫・体系的に復習することができました。競技プログラミングに強くなりたい人にはかなりおすすめの1冊です。自分のようにAtCoder水色前半ぐらいまでの人であれば間違いなく読む価値があります (最近はAtCoderのレベルが上がりすぎている…)

なかなか体系的に学べる本って少ないんですよね。本書にはわかりやすい説明にわかりやすい図、わかりやすいサンプルコードがついていていうところなしという感じです。章末問題もついているので、手を動かして勉強もできる。教科書的に知識を得ていくのもよいですし、読んだ後は手元において、リファレンスとしても利用できる、というか自分は利用しています。

しいてケチをつけるとすると、章末問題の公式解答があればよかったかなーというところ。章末問題のうち、ほとんどはAtCoderやその他競技プログラミングサイトの問題なので、それについてはググれば解答・解説はいくらでも見つかるのですが、本書オリジナルの問題については解答例がないのはやや不親切に感じます。まあ、将来的に公式解答が公開されるかもしれませんし、ユーザが独自に非公式解答集を公開するかもしれませんし、これは時間が解決する問題であるような気もします。

余談: 自分は普段電子書籍をhontoで買うのですが、自分がこの本を買ったときは、hontoで本書の電子書籍版の取り扱いがありませんでした。amazonでは電子書籍版があったのですが、電子書籍はhontoで揃えたいという個人的な事情があり、なくなく丸善で紙の本を買ったのですが、今見るとhontoでも電子書籍版が扱われていますね(´・ω・`)