全国のプログラマを何日も悩ませ続けたあの『プログラマ脳を鍛える数学パズル』の新作『もっとプログラマ脳を鍛える数学パズル』が2月19日に登場。今回も選りすぐりの問題が皆さんの時間を奪います。アルゴリズムのコーディングに自信がある方は、ぜひ挑戦を!
『もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問』は、「カップルを隣同士に並ばせない席順は?」といったような、アルゴリズムを利用することで気持ちよく解ける数学パズルをまとめた問題集です。
前作は「ITエンジニアに読んでほしい!技術書・ビジネス書大賞2016」の技術書部門で大賞を獲得。本書には前作からさらに磨き抜かれた選りすぐりの70問が登場します。
日頃業務でしかコードを書かない方も、あるいは職場でも家でもコードを書いている方でも、肩肘張らず息抜きやちょっとした暇潰しに取り組んでみてください。いかに頭を柔らかくできるかが、よいコードを発想するためのポイントです。
それに、今や効率よく処理できるアルゴリズムを実装する力はプログラマに欠かせない能力。本書の問題すべてに解答のソースコードを提示できれば、「よいアルゴリズム」を発想・実装する力がいつの間にか身についているでしょう。
CodeIQの連載「今週のアルゴリズム」で数学パズルを作り続けてきた著者・増井敏克さんからの挑戦状が、またしても皆さんの頭を大いに悩ませます!
また、本書を予約・購入していただいた方に特典として特別解説「アルゴリズムで1000倍速くなる?」をプレゼントします。アルゴリズムを理解するための初歩的な知識となる「データ構造」と「ソート」についての解説です。
基礎をしっかり学びながら数学パズルを解いていきたい方にお勧めです。詳細を特設ページでご確認のうえ、ぜひご応募ください!
プレゼントクイズ実施中
すでにご存じの方もいるかもしれませんが、2月18日(日)まで、正解者の中から3名に本書をプレゼントするオリジナルのクイズを出題中です。アルゴリズムの発想と実装に自信がある方は、ぜひ挑戦を!
クイズの詳細や解答の応募方法は下記をご覧ください。
目次
第1章 入門編 素直に実装して感覚をつかもう
Q01:一発で決まる多数決
Q02:山手線でスタンプラリー
Q03:ローマ数字の変換規則
Q04:点灯している量で考えるデジタル時計
Q05:枚数で考えるパスカルの三角形
Q06:長方形から作る正方形
Q07:ファイルの順番を元どおりに戻したい!
Q08:セルの結合で一筆書き
Q09:ナルシシストな8進数
Q10:アダムズ方式で議席数を計算せよ!
Q11:オリンピックの開催都市投票
Q12:円周率に近似できる分数
Q13:並べ替えの繰り返し2
Q14:現地で使いやすい両替
Q15:幅優先の二分木を深さ優先探索
Q16:既約分数はいくつある?
第2章 初級編 メモ化などを使って処理時間を意識しよう
Q17:グループで乗るリフト
Q18:非常階段での脱出パターン
Q19:バランスのよいカーテンフック
Q20:酔っ払いの帰り道
Q21:本の読み方は何通り?
Q22:百マス計算で最小のマスをたどると?
Q23:セミナーの座席を整列させろ
Q24:予約でいっぱいの指定席
Q25:左右対称の二分探索木
Q26:回数指定のじゃんけん
Q27:大家族でチョコレートを分けるには
Q28:パターゴルフのコース設計
Q29:公平に分けられたケーキ2
Q30:交互に取り合うカードゲーム
Q31:ソートされないカード
Q32:乗客のマナーがよすぎる満員電車
Q33:ホワイトデーのお返し
Q34:左右に行ったり来たり
Q35:かしこい幹事の集金術
Q36:上下反転した数字
Q37:ダイヤルロックを解除せよ!
Q38:全員が大きく移動する席替え
第3章 中級編 数学的な工夫を考えて処理を高速化しよう
Q39:隣り合うと消えちゃうんです
Q40:沈みゆく島で出会う船
Q41:スタートメニューのタイル
Q42:大忙しのサンタクロース
Q43:隣り合えないカップル
Q44:3進法だとどうなる?
Q45:一筆書きの交点
Q46:一筆書きでクルクル
Q47:圧縮できるパターンは何通り?
Q48:均等に分配されるカード
Q49:番号の対応表で作るグループ
Q50:戦闘力で考えるモンスターの組み合わせ
Q51:連続する桁の数字で作る平方数
Q52:一列に並べたマトリョーシカ
Q53:重さが素数の荷物を運ぶエレベーター
Q54:素数で作る天秤ばかり
Q55:十文字に反転して色を揃えろ
Q56:回数指定のじゃんけん2
Q57:急行停車駅と特急停車駅のパターン
Q58:ポーランド記法と不要なカッコ
Q59:取られたら取り返す!
Q60:○×ゲームの結果画面は何通り?
第4章 上級編 複雑な処理を正確に実装しよう
Q61:互い違いに並べ替え
Q62:壊れたピンチハンガー
Q63:永遠に続くビリヤード
Q64:最短距離で往復できる形は?
Q65:n-Queenで反転
Q66:整数倍の得票数
Q67:迷路の最長経路
Q68:Base64で反転
Q69:ファイル数が異なるフォルダ構成
Q70:他人と同じ商品は選ばない
この記事は参考になりましたか?
- この記事の著者
-
渡部 拓也(ワタナベ タクヤ)
翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です