るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

ITP1_5_A Print a Rectangle

ここも押していただけると嬉しいです #=> にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Rubyへ にほんブログ村 IT技術ブログ Ruby on Railsへ

さて、新年も明けましたが、義理の実家に行っていたので大して何も進んでいません。

ということで、今日もちょこっとやってみたAOJ。 #=> 長方形の描画 | プログラミング入門 | Aizu Online Judge

問題

長方形の描画

たてH cm よこ W cm の長方形を描くプログラムを作成して下さい。

1 cm × 1cm の長方形を '#'で表します。


Input

入力は複数のデータセットから構成されています。各データセットの形式は以下のとおりです:

H W

H, W がともに 0 のとき、入力の終わりとします。


Output

各データセットについて、H × W 個の '#' で描かれた長方形を出力して下さい。

各データセットの後に、1つの空行を入れて下さい。


Constraints

H, W ≤ 300

なるほど、0 0が来るまでループで取得したH × Wの#を並べればいいのか。これなら難しくないね!

自分のコード

while true
    rect = gets.split.map(&:to_i)
    if rect[0] == 0 && rect[1] == 0
        break
    end
 
    rect[0].times do
        puts '#'*rect[1]
    end
    print "\n"
end

何も考えずシンプルにループを書いて、一応これで最速タイ。

他の人のコード

一番コードが短い人。

$><<$<.map{|l|h,w=l.split.map &:to_i
[?#*w]*h*$/}*'
 
'

あ、えーと… うん、この2行目読みにくいというか、何というか…

じっくり見れば意味が分かってくるような気がしなくもないけど、自分で書こうとは思えない…


他の人のは、なんだか似たり寄ったりですね。あまり面白くないなぁ…