nekoTheShadow’s diary

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

大槻兼資『パズルで鍛えるアルゴリズム力』(技術評論社)を読んだ

パズルで鍛えるアルゴリズム力の電子書籍|新刊 - honto電子書籍ストアhonto.jp

今年のゴールデンウィークは10連休 (まあ実際にはそれほど休めませんでしたが…)。本来であればどこか遠出でもしたいところですが、まだまだコロナも暴れまわっている昨今、それは自粛して大阪の実家に帰省する程度にしました。実家でのんびりとはいえ、そこそこ時間があったので、自己研鑽の意味を含めて、読んだのがこの1冊。

内容はというと、虫食い算や数独やテンパズルといった有名なパズルをプログラミングを使って回答することで、アルゴリズムを学ぼうというもの。アルゴリズムの本というと、アルゴリズムそのものを解説したものが多い印象です。そういう本でグラフとか深さ優先探索とか知ったとして、ではそれを実際にどう利用するのかというところにはいきつかない人も多いでしょう。本書の主題はパズルという現実世界に実際に存在する問題(やや遊戯よりですが)に対して、アルゴリズムをどう適用するのかというところであり、なかなか面白い観点だと思いました。

あとパズルのマニアック(?)な知識が知れてよかったですね。個人的にパズルって結構好きなんで、新聞や雑誌で問題を見かけると時間をつかって解きたくなるタイプです。自分のようにアプリよりのプログラマーをやっていて、アルゴリズムに関心がある人はパズルが好きな人が多いんじゃないですかね? 本書にはパズルの例題がいくつも用意されています。気になったものは実際に解いてみたりして、なかなか楽しかったです。

本書を手に取るのはプログラミングに基礎的な素養のある人が多いと思いますが、説明は全体的に平易ですし、図表も多く、その図表もカラフルでわかりやすいです。とりわけ図表の充実っぷりはかなりすごい! 何が言いたいかというと、プログラミングやアルゴリズムに不慣れな人でもお勧めできる1冊です。

サンプルコードはC++で書かれていますが、マイナーなAPIや文法などは使われていませんので、ご安心を。たとえば自分はこういう本を読むとき、サンプルコードの写経をやることが多いのですが、C++よくわかっていないので、Pythonを採用したぐらいです。要するに自分ぐらいのC++よくわかっていないマンでも内容がわかる程度のC++で書かれているということです。C言語に似た文法のプログラミングの経験があれば、わからないということはないでしょう。

総じていい1冊でした。正直何気なく買った本ですが、とても知的好奇心が満たされたと感じています。