急速な技術の進歩、システム開発競争の激化……。プログラマを取り巻く環境はやさしいものではありません。でも、思い出してみてください。自分の書いたソースコードでプログラムが動くのを初めて見たとき。思い描いた通りのプログラムができたとき。プログラミングの楽しさを感じたことでしょう。何もないところからソースコードだけで新たな価値を生むプログラマは、非常に魅力的な職業です。
本書で登場する数学パズルは、そのようなワクワクにあふれています。「両替したときの硬貨の組み合わせはいくつ?」のような問題から、「国名でしりとりしたときに、一番長く続く順番は?」「運命の出会いは何通り?」というものまで、70の問題を解くコードを、3人のキャラクターたちと一緒に考えていきます。
パズルを解くうちにアルゴリズムが身につき、シンプルで高速なコードが書けるようになります。楽しみながらスキルアップもできて一石二鳥。さっそく挑戦してみましょう!
【使用言語について】
本書の解説では、主にRubyとJavaScriptを使用していますが、解説内容は「考え方」が中心であるため、どんな言語にも応用できます。また、問題を解くために特定の言語が必要になることもありません。
【本書に収録されている問題(抜粋)】
Q01 10進数で回文
Q03 カードを裏返せ
Q08 優秀な掃除ロボット
Q09 つりあわない男女
Q21 排他的論理和で作る三角形
Q33 百人一首の達人
Q45 素数のマトリックス
Q48 グレイコードのループ
Q53 いたずらされたお菓子
Q64 迷路で待ち合わせ
kaizen@名古屋de朝活読書会 さん
2017-01-06
増井敏克 #技術士 プログラム書くと簡単解けるものRuby JapaScript打つ プログラム書かずに解ける問題もどちらもあること知れば賢し
calicalikoume さん
2019-08-17
本書を通じて主に再帰を使ったパターン検索と便利な組み込み関数の使い方が自然と身についたと思います。高速化としてはメモ化やビット演算の活用が印象に残っています。数学的な解き方はなかなか気付けず、解答を見て頷く事が多かったです。問題を解く中で、自分のコードでは計算が終わらず解答のアルゴリズムだと一瞬で解けるケースがあったりして何度か衝撃を受けました。Rubyが読めるようになるまでは苦労しますが、解答はシンプルなものが多く説明も丁寧なので理解しやすいと思います。
しんしん さん
2015-10-30
今までに読んだプログラミングパズルの本の中で一番楽しかった。 問題を読んで、アルゴリズムが組み立てられたら次に進むということを1冊続けられたのは自信になった。 問題の題材も楽しくて、本のページ構成も解くことに集中させてくれた。