キリン本を読み終わったのでRuby1.9で。
前回は unrated だったので実質4回目。もっと参加したいなぁ…
A:
trumpでない場合は同じ種類のカードしか出せないという条件を見逃して Wrong answer on test 48 \(^o^)/
以下修正したコード
#!/usr/bin/env ruby trump = gets.chomp first, second = *gets.chomp.split(/ /) arr = %[6 7 8 9 T J Q K A] if first[1] == second[1] or first[1] == trump if arr.index(first[0]) > arr.index(second[0]) or first[1] == trump && second[1] != trump puts "YES" else puts "NO" end else puts "NO" end
B:
最後の行はRubyっぽく書けたと思う。
#!/usr/bin/env ruby n = gets.chomp.to_i arr = [] n.times do |i| arr.push gets.chomp.split(/ /).map{|n| n.to_i} + [i+1] end n.times do |i| n.times do |j| if arr[i][0] < arr[j][0] and arr[i][1] < arr[j][1] and arr[i][2] < arr[j][2] arr[i][4] = 0 end end end puts arr.select{|a| a[4] != 0}.min{|a,b| a[3] <=> b[3]}[4]
Array#minってブロックを取るバージョンもあるんですね。