ソースコードの美醜
C: 風力観測 - AtCoder Beginner Contest 001 | AtCoder
if文の羅列しか思いつかず、カオスになった。
勉強になったコード
dirs = [ "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", ] ws = [3, 16, 34, 55, 80, 108, 139, 172, 208, 245, 285, 327, 1.0/0] deg, dis = gets.split(" ").map(&:to_i) v = (dis.to_f / 6).round w = ws.find_index { |wl| wl > v } dir = w == 0 ? "C" : dirs[((deg * 10 + 1125) / 2250) % 16] puts "#{dir} #{w}"
まだ、ちゃんと分かっていないコード
gets=~/ /;puts (?C[w=[3,16,34,55,80,108,139,172,208,245,285,327,$$].index{|x|$'.to_i<x*6-3}]||%w[NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N][($`.to_i-113)/225])+" #{w}"
人のコードなので、コピペしてだめだったら教えてください