『第5回デスマコロシアム』に参加しました
はじめに
『第5回デスマコロシアム』に参加しました。
「第5回デスマコロシアム」問題のトーナメント結果発表です!──優勝者は…! #デスマコロシアム|CodeIQ MAGAZINE
要は FizzBuzz ですが、15の倍数のときは大文字の FIZZBUZZ にするというのが特徴です。
問題を読んで、とりあえず書いた Perl (51文字) のコードに「とりあえず」とだけコメントを付けて、とりあえず提出しました。後で日々の集計を見て、短く書けそうな言語で再提出するつもりでした。「とりあえず」のコードは、暫定の全言語最短になりました。
第5回デスマコロシアム(http://t.co/5Bwq4clHQs)。全言語中最小文字数はPerl(51)が1名になりました。 #デスマコロシアム #CodeIQ
— tbpgr | peco | cat (@tbpgr) 2014, 7月 23
毎度Perlerの本気にはチビらされるなぁ RT @tbpgr 第5回デスマコロシアム(http://t.co/Hd0xCknbXW)。全言語中最小文字数はPerl(51)が1名になりました。 #デスマコロシアム #CodeIQ
— カニ戯(ry (@bananawani_mc) 2014, 7月 23
— ニクモ (@nikumo) 2014, 7月 23
ところが、それから何日経っても記録が更新されず、帯状疱疹を患って入院したり退院したりしているうちに締め切りを迎えました。結局、「とりあえず」のコードのまま最短賞をいただきました。チャンピオンバッジは、これで4回連続4個目です。(「決勝進出おめでとうございます!」と書いてあるのですが、決勝どころか準決勝にすら進んだことがない私が4個も持っていていいのかという妙な背徳感が…)
コード
print$_%5?$_%3?$_:fizz:$_%3?buzz:FIZZBUZZ for 1..50
Perl (51文字) です。5の倍数かどうかで場合分けし、それぞれの場合を3の倍数かどうかで場合分けするという、なんの工夫もないコードですが、これで実際に最短賞が取れてしまったので仕方ありません。
ちなみに、15の倍数のときが小文字の fizzbuzz ならば工夫の余地があって、 Perl で 45 文字で書けますので、挑戦してみてください(ググる前に!)