0
0

More than 3 years have passed since last update.

rubyのAPI問題

Last updated at Posted at 2021-03-18

問題

任意の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を対象に入っている値を足して行って合計を出力する。
以上!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0