2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】配列から重複していない要素を取得する

Last updated at Posted at 2021-01-05

概要

配列内の重複していない要素を取得し、計算するというプログラムを書きました。
重複しているものがほしいときには比較演算子の記述を変更すれば取得することができます。認識に間違いがありましたらご指摘いただけたら幸いです。

目次

  • 実践

    • 問題
    • 解答
  • 参考文献

実践

問題

任意の3つの数値の合計を出力するメソッドを作成してください。ただし、同じ数が含まれている場合はカウントしない。

解答

ハッシュを始めに生成しているのは、要素数を計算し、条件に合うものを select で取得したいからです。

def uniq_num(ary)
  counts = Hash.new(0)                             # ハッシュを生成
  ary.each { |v| counts[v] += 1 }                  # 重複している要素を検索
  i = counts.select { |v, count| count == 1 }.keys # 重複していないものだけ取得
  p i.sum                                          # 合計を出力
end

# メソッド呼び出し
uniq_num([1, 2, 3])
uniq_num([3, 2, 3])
uniq_num([3, 3, 3])

# ターミナル出力結果

# 6
# 2
# 0

参考文献

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?