すがブロ

sugamasaoのhatenablogだよ

code golf(4)

なんとか

プログラムがPASSできるものはできた。
……が、順位はとてもひどいものになっている。
ここのページで masao を検索するとおれの恥ずかしい記録を見ることができる。
で、とりあえず今思いつくショートコードを目指したわけだが、どう見てもショボイです。本当にありがとうございました。

どこを短くすれば良いのか

最短コードはおれのコードで言うと描画処理部分だけとコード量がほぼ等しいわけで。これは、おれのプログラムの各処理無駄があるのか、そもそも切り口が違うのか。
少なくとも、データ取得部分はもう少しやりようがあるような気がする。
ここから先は Code Golf をやる人はみないでね(ソースが載ってるから)


このソースにインデントのスペースを除去したのがアップされている。
この形ではこれ以上短くできないように思えるんだけどなぁ。。。

a=[]
while(gets)
  t=$_.split
  a<<[t[1].to_i,t[0].to_i,t[2].to_i]
end
x=0
y=0
a.sort.each do |l|
  if y==l[0]
    puts
    y+=1
    x=0
  end
  while x<l[1]
    print " "
    x+=1
  end
  print l[2].chr
  x+=1
end
puts

あんまり悩んでもハゲるだけなので

これ以上コードが短くならなきゃそれで良しとして、他の問題でも解いてみよう。やってるうちに閃くかもしれないし。