tsucchiさんの記事に影響を受けてみたったー
-2000 から -10000 の数字を 10 おきに改行つきで出力するコードを書いて下さい
自分なりに試行錯誤した結果を結構、あえてそのままに書いてます!るびまゴルフになぜか Perl で参戦してみた
に対して今更のエントリ
Rubyスゲェェェェェと思ったり、オイラ、ラメェェェェ
思ったりと幸せで難しいひと時でしたーw
とりあえず、ここまでやってみて詰まってるびまごるふの解答例を見てみる
print-$_,1>$_%10&&"\n"for 2000..10000;
最初の気付き
あー、1e3で1000とかあったね、すっかり忘れてたわ…OTL
よしよし、3Bytesほど削れたな
print-$_,1>$_%10&&"\n"for 2e3..1e4;
ゴルフから遠ざかりすぎていたことの気付き
@hide_o_55氏から$/でクォート分削れると御指摘を頂きました
特殊変数で改行分のスコアを稼ぐとかもスッカリ忘れてた
ありがたや、ありがたや
print-$_,$_%10?'':$/for 2e3..1e4;
更に
三項演算子使わなくても数値比較で出来んじゃなどと考えてみる
そして、削れなかったけど、こっちのがクールな気はしている
print-$_,1>$_%10&&$/for 2e3..1e4;
これで32Bytes、パーは27Bytesなので未達成なう
Rubyで実行してみたところ…想定結果と違う!?
想定してた結果
-2001-2002-2003-2004-2005-2006-2007-2008-2009-2010
-2011-2012-2013-2014-2015-2016-2017-2018-2019-2020
-2021-2022-2023-2024-2025-2026-2027-2028-2029-2030
・
・
・
-2001-2002-2003-2004-2005-2006-2007-2008-2009-2010 -2011-2012-2013-2014-2015-2016-2017-2018-2019-2020 -2021-2022-2023-2024-2025-2026-2027-2028-2029-2030 ・ ・ ・
求められていた結果
2000 2010 2030 ・ ・ ・
でけったー
Σ(゚Д゚|| ... 何で間違えて難易度を上げてるんだ…ておいうことで難易度がダダ下がりになってくれたので余裕でパー達成
say版
say-$_,0 for 200..1e3 #21B||<
print版
print-$_,0,$/for 200..1e3 #25B
ムダに再起とか使ってみる
&{$f=sub{($_||=2e2)<=1e3&&{say($_++,0),&$f}}}
数値を2つ引数にして、その間にある数を出力する
入力はコンマで区切られて標準入力から与えられるものとします
$ARGV[0]=~s/(.+),(.+)/print for$1..$2/e
自分なりに試行錯誤した結果を結構、あえてそのままに書いてます!
一行の英単語が標準入力から与えられて、その末尾から 1Byte ずつ伸ばしていく形で文字数分の行を出力
print$s=$c.$s,"\n" while($c=chop)
うん、自分でも筋が悪いと思う。。。
標準入力から複数の行を受け取って、同じ内容の行は捨てつつ標準出力に出力するプログラム(パー:30B)
print$t{$_}++<1&&$_ while(<>)
@lestrratさんことJPAの牧さんから御指摘を頂きました
コマンドラインスイッチ使っちゃいけないんですか?
$t{$_}++||print
さすがっス…ありがたや、ありがたや
Perlでフィボナッチ
久々に(ヘタなりに)ゴルフを頑張ってみようと思ったきっかけがコレ
sub{print"$i\n"while*1[0]<$_[0]}->(20);
yet anotherな@Maki_Daisukeさんに教えて頂きました!
それにしても
すごいよPerl!さすがRubyのお兄ちゃん!!
*1:$i,$j)=($j+0,$i+$j||1