ITP1_5_A Print a Rectangle
さて、新年も明けましたが、義理の実家に行っていたので大して何も進んでいません。
ということで、今日もちょこっとやってみた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行目読みにくいというか、何というか…
じっくり見れば意味が分かってくるような気がしなくもないけど、自分で書こうとは思えない…
他の人のは、なんだか似たり寄ったりですね。あまり面白くないなぁ…