問題
任意の3つの数値の合計を出力するメソッドを作りましょう。ただし、同じ数が含まれている場合は合計にカウントされません。
模範回答の理解できたところを解説
lone.rb
def lone_sum(ary)
uniq_nums = []
ary.each do |num|
count = 0
ary.each do |i|
if num == i
count += 1
end
end
if count < 2
uniq_nums << num
end
end
sum = 0
uniq_nums.each do |unique_num|
sum += unique_num
end
puts sum
end
例えばary = [ 3, 2 ,3 ]
だったとして
一番親になっているeachで最初にnum = 3となって3を検証する。
次のeachでnum = 3
を対象にary = [ 3, 2 ,3 ]
をそれぞれi
として検証をする。
最初、3 = 3
となってcount += 1
次は3 = 2では無いので読み飛ばし。次は3 = 3なのでcount += 1
条件分岐でif count < 2
となっているので最初のnumは読み飛ばしされる。
次はnum = 2の検証同じ要領で進むとcount = 1となってif count < 2
に当てはまるためuniq_nums << num
となる
最後はuniq_numsを対象に入っている値を足して行って合計を出力する。
以上!