Since 14.Jan.2009:08:29
プログラミングと絵のブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
				今日は初めてるびまゴルフに挑戦してみた
問題はるびまゴルフ第6回から、
seq という Unix コマンドがあります。このコマンドを使うと、数値を2つ引数にして、その間にある数を出力することができます。例えば 3 と 5 を引数として実行すると
% seq 3 5
3
4
5
というような実行結果になります。
今回はこのコマンドを実装してみて下さい。入力はコンマで区切られて標準入力から与えられるものとします。例えば
3,5
という入力に対して
3
4
5
と出力するようにして下さい。例えば
a,b=gets.split(',').map{|v|v.to_i}
a.upto(b){|i|puts i}
というようなコードと同じ出力が得られるようにして下さい。パーは 50Bytes とします。
また余力があれば、入力が
3 5
と空白区切りで与えられる場合、 seq のように引数として与えられる場合、つまり ARGV を使う場合も考えてみて下さい。
自分の解答
この3つ。
とりあえず1時間くらい頑張ってみたけどここまでだった。
とりあえずパーはクリアしたけど
添削タイム
終わった後、他の人のを見てみると、
(a..b).to_a => *a..b
にすると、3問とも6Bytes減らせるらしい。
あと1,2番はなんかうまく動かないからto_iメソッド使ってたんだけど、
getsで受け取ったら"3,5\n"になって、改行が入るみたい。
gets.chopで改行を取り除くとto_iがいらなくなって、
gets.chop=~/,/;puts *$`..$'
の27Bytes。
空白区切りなら28Bytes。
修正は↓の人を参考
http://rubyist.g.hatena.ne.jp/edvakf/20090702/1246522250
最後の詰めが甘かったw
方向性は合ってたんだけどなぁ・・・
次回はもっとがんばります。
evalとか使ってる人もいた。
両方とも26Bytes。
evalは未だに良く分からん
文字列を動的にプログラムとして認識するんだっけか
てか何で
p [3,4,5]
#=> [3,4,5]
なのに、
p *3..5
#=> 3
4
5
なんだ。謎すぐる・・・
*はto_aとは微妙に違うということか・・・
																								問題はるびまゴルフ第6回から、
seq という Unix コマンドがあります。このコマンドを使うと、数値を2つ引数にして、その間にある数を出力することができます。例えば 3 と 5 を引数として実行すると
% seq 3 5
3
4
5
というような実行結果になります。
今回はこのコマンドを実装してみて下さい。入力はコンマで区切られて標準入力から与えられるものとします。例えば
3,5
という入力に対して
3
4
5
と出力するようにして下さい。例えば
a,b=gets.split(',').map{|v|v.to_i}
a.upto(b){|i|puts i}
というようなコードと同じ出力が得られるようにして下さい。パーは 50Bytes とします。
また余力があれば、入力が
3 5
と空白区切りで与えられる場合、 seq のように引数として与えられる場合、つまり ARGV を使う場合も考えてみて下さい。
自分の解答
- gets=~/,/;puts ($`.to_i..$'.to_i).to_a #38Bytes
 - gets=~/\s/;puts ($`.to_i..$'.to_i).to_a #39Bytes
 - a,b=$*;puts (a..b).to_a #23Bytes
 
この3つ。
とりあえず1時間くらい頑張ってみたけどここまでだった。
とりあえずパーはクリアしたけど
添削タイム
終わった後、他の人のを見てみると、
(a..b).to_a => *a..b
にすると、3問とも6Bytes減らせるらしい。
あと1,2番はなんかうまく動かないからto_iメソッド使ってたんだけど、
getsで受け取ったら"3,5\n"になって、改行が入るみたい。
gets.chopで改行を取り除くとto_iがいらなくなって、
gets.chop=~/,/;puts *$`..$'
の27Bytes。
空白区切りなら28Bytes。
修正は↓の人を参考
http://rubyist.g.hatena.ne.jp/edvakf/20090702/1246522250
最後の詰めが甘かったw
方向性は合ってたんだけどなぁ・・・
次回はもっとがんばります。
evalとか使ってる人もいた。
- p *(eval"Range.new "+gets)
 - eval"p *%d..%d"%gets.split
 
両方とも26Bytes。
evalは未だに良く分からん
文字列を動的にプログラムとして認識するんだっけか
てか何で
p [3,4,5]
#=> [3,4,5]
なのに、
p *3..5
#=> 3
4
5
なんだ。謎すぐる・・・
*はto_aとは微妙に違うということか・・・
PR
				
					カレンダー				
				| 10 | 2025/11 | 12 | 
| S | M | T | W | T | F | S | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
					ブログ内検索				
				
					プロフィール				
				
HN:
	
uguisu_an
年齢:
	
36
性別:
	
男性
誕生日:
	
		1989/08/20	
自己紹介:
	
				基本的にテキトー
					カテゴリー				
				
					最新記事				
				(10/30)
(08/12)
(08/12)
(07/05)
(06/29)
				
					最新コメント				
				[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
				
					最新トラックバック				
				
					アクセス解析				
				
					フリーエリア				
				
					P R