プログラマ脳を鍛える数学パズル
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問
翔泳社
著者:増井敏克
はじめに
謝辞
本書の概要
登場人物紹介
ダウンロードファイルについて
第1章 入門編★ プログラムを作って問題を解いてみよう
2進数と10進数
Q01:10進数で回文
Q02:数列の四則演算
Q03:カードを裏返せ
Q04:棒の切り分け
Q05:いまだに現金払い?
Q06:(改造版)コラッツの予想
Q07:日付の2進数変換
Q08:優秀な掃除ロボット
Q09:つりあわない男女
Q10:ルーレットの最大値
Q11:フィボナッチ数列
Q12:平方根の数字
Q13:覆面算を満たすのは何通り?
Q14:W杯出場国しりとり
Q15:階段で立ち話
第2章 初級編★★ 簡単な問題を解いてアルゴリズムの効果を実感しよう
費用対効果を意識する
Q16:3本のひもで作る四角形
Q17:30人31脚に挑戦!
Q18:ショートケーキの日
Q19:友達の友達は友達?
Q20:受難のファサードの魔方陣
Q21:排他的論理和で作る三角形
Q22:絡まない糸電話
Q23:ブラックジャックで大儲け!?
Q24:完璧に撃ち抜くストラックアウト
Q25:オシャレな靴ひもの結び方
Q26:効率のよい立体駐車場
Q27:右折を禁止されても大丈夫?
Q28:クラブ活動への最適な配分
Q29:合成抵抗で作る黄金比
Q30:テーブルタップで作るタコ足配線
第3章 中級編★★★ アルゴリズムを工夫して高速な処理を実現しよう
オーダー記法と計算量
Q31:最短経路の計算
Q32:畳を敷きつめろ
Q33:百人一首の達人
Q34:飛車と角の利き
Q35:運命の出会いは何通り?
Q36:「0」と「7」の回文数
Q37:サイコロの反転
Q38:7セグメントコードの反転
Q39:「白」で埋めつくせ!
Q40:並べ替えの繰り返し
Q41:美しい?IPアドレス
Q42:1つの数字で作る1234
Q43:シャッフルで逆順
Q44:グラスの水を半分に
Q45:素数のマトリックス
Q46:ソートの交換回数の最少化
Q47:オンリーワンな○×
Q48:グレイコードのループ
Q49:反転で作る互い違い
Q50:急がば回れ
Q51:パーフェクトシャッフル
Q52:同時に終わる砂時計
Q53:いたずらされたお菓子
Q54:同じ数字で挟み撃ち
Q55:横着なそろばん
Q56:公平に分けられたケーキ
第4章 上級編★★★★ 視点を変えて高速化を目指してみよう!
ソースコードの個性
Q57:あみだくじの横線
Q58:最速の連絡網
Q59:ハンカチ落としの総走行距離
Q60:セルの結合パターン
Q61:同じ大きさに分割
Q62:交差せずに一筆書き
Q63:カレンダーの最大長方形
Q64:迷路で待ち合わせ
Q65:面倒なキャッチボール
Q66:図形の一筆書き
Q67:クロスワードパズルを作成せよ!
Q68:隣り合わないのがマナー?
Q69:男女平等な席替え
Q70:青白歌合戦
索引