はじめに
RubyでAtCoderのB問題解いてみました。
私のレベル的にB問題のレベルが解いてて一番気持ちいいです。
C問題にもなれていかなくては。
それではよろしくお願いします。
問題はこちらからご確認ください↓
B- Cycle Hit
まずは入力の受け取り方ですが、配列に全ての入力を格納していきます。
空の配列を用意して、四つの入力を受け取るので繰り返し処理で4回放り込みます。
s = []
4.times do
s << gets.chomp
end
これで配列の中に四つの入力が入りました。
あとはinclude?メソッドで、配列にH, 2B, 3B, HRの四つが存在するかを調べて、TrueならYesをFalseならNoを出力させればいいはずです。
s = []
4.times do
s << gets.chomp
end
if s.include?("H") && s.include?("2B") && s.include?("3B") && s.include?("HR")
puts "Yes"
else
puts "No"
end
これでもし、全種類が格納されていなかったら、Noが返されます。
全種類あったらYes!
私はinclude?メソッドの使い方を間違えて一度は下記のような書き方をしてしまいました。
間違った解答
s = []
4.times do
s << gets.chomp
end
if s.include?("H", "2B", "3B", "HR")
puts "Yes"
else
puts "No"
end
めちゃ恥ずかしい。。。
最後に
他の書き方コメントにて教えていただけると幸いです。
冒頭にも書きましたが、B問題が一番ちょうどよく気持ちいいです。
たまーに問題によってはC問題が解けるのですが。
そういえばpaizaとシュタゲのコラボが気になっています。
僕のレベルじゃ難しいかなあ。