はじめに
Webエンジニアを目指して、RubyやRailsをいじってます。
今回は、RubyでAtCoder ABC233のA, B, Cを解きました。備忘録として解き方をまとめていきたいと思います。
A - 10yen Stamp
a-233.rb
x, y = gets.split.map(&:to_i)
y -= x
if y < 0
puts 0
exit
end
ans = y / 10
puts y % 10 == 0 ? ans : ans + 1
B - A Reverse
b-233.rb
l, r = gets.split.map(&:to_i)
l -= 1
r -= 1
s = gets.chomp
s[l..r] = s[l..r].chars.reverse.join
puts s
C - Product
c-233.rb
n, x = gets.split.map(&:to_i)
array = Array.new(n){ gets.split.map(&:to_i)[1..] }
puts [1].product(*array).count{ _1.inject(:*) == x }
解説
(他の方の提出結果を参考にしました)
product
メソッドを使って各配列から要素を1つ取得することができます。なお、*array
の形にすることで配列を展開しています。そして、inject
メソッドを使って各組み合わせにおける総積を求め、count
メソッドでその値がX
と一致しているものの数を求めています。
参考