「プログラマ脳を鍛える数学パズル」の回答記事、第7回目です。
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問
- 作者: 増井敏克
- 出版社/メーカー: 翔泳社
- 発売日: 2015/10/16
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
問題文については、残念ながら転載が禁止されていますので、本連載(?)では自分の回答コードのみを掲載していきます。
気になってしまった方は、本を実際に購入し、解いてみることをオススメします。
Q18「ショートケーキの日」の回答コード
この連載では、模範解答とは異なるアプローチやコーディングスタイルで解けた場合に限って、ブログに投稿しています。
コード中で使っている、measure do
については、過去記事で書いているので、こちらをご参照ください。
平方数の組み立てをさぼっていますが......
模範解答その1より早く、模範解答その2よりわかりやすく、どちらの解答よりも短いコードを書けたのではないかと思います。
以下、計測結果。
$ paiza ruby puzzle18.rb [1, 15, 10, 26, 23, 2, 14, 22, 27, 9, 16, 20, 29, 7, 18, 31, 5, 11, 25, 24, 12, 13, 3, 6, 30, 19, 17, 32, 4, 21, 28, 8] user system total real 1.670000 0.010000 1.680000 ( 1.670901) $ paiza ruby puzzle18_1.rb 32 [1, 8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 31, 18, 7, 29, 20, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15] user system total real 2.650000 0.020000 2.670000 ( 2.671720) $ paiza ruby puzzle18_2.rb 32 [8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 31, 18, 7, 29, 20, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15, 1] user system total real 0.280000 0.000000 0.280000 ( 0.286056)
模範解答2はやっぱり早いですね。