今日のgolf - るびまゴルフ第七回

投稿者 nanki 2009-09-14 15:02:00 GMT

月に一度のgolf. というか、人がやっているのを目にすると、手を出したくなってくる。
たぶん、子供がプラモデル組み立てているのを見て「ちょっとお父さんにかしてみなさい」というタイプ。

結局、前回の最短は23Bだったらしい。変数名まで同じだった :)
文字数を削るという共通の目的が、変数名から意味すら奪うのだろうか。

20Bという噂はなんだったんだろう…

反省を生かして、今回は、27Bまで縮んだところで寝かせておく。

続きにあるのはお気に入りの答えだが、パー。

追記: 2009/09/17 いくつかの方針で使っている方法を組み合わせたら23Bになった。驚き。

参考:

今日のgolf - るびまゴルフ

投稿者 nanki 2009-07-02 23:14:00 GMT

久々にgolf。 問題はコチラ.

標準入力から、3,5 という入力を受け取って、3 から5 までの数字を出力するコード。

まず素直(?)に書いて、

p *eval(gets.split(',').join('..')) # 35B

順等に縮めると

p *eval(gets.sub',','..') # 25B

ここからは手強いので寝かせて。

eval'A,B='+gets;p *A..B # 23B

A, Bの重複がとても気になる…

ちょっとずるいけど、$ ruby -n を使っていいと、

p *eval(sub',','..') # 20B

文字列のRangeを使う方法もやってみたけど、挙動に問題があるのでやめ。

風の噂では、20Bまでいける、と聞いたんだけど…がんばります。

参考:

Rubyist Magazine - るびまゴルフ 【第 6 回】