配列の演算子
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 71/88。
Rubyには、配列を強力な方法で結合、比較、操作できる特別な演算子が用意されています。これらの演算子を使用すると、複数の配列を一度に簡単に扱うことができます。
+ 演算子は、2つの配列を連結して新しい配列を作成します:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b
puts combined # 出力: 1, 2, 3, 4, 5, 6- 演算子は、2番目の配列に含まれる要素を最初の配列から取り除きます:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove
puts result # 出力: 1, 3, 5& 演算子は、両方の配列に共通する要素(積集合)を返します:
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b
puts common # 出力: 3, 4| 演算子は、配列を結合して重複を削除します(和集合):
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b
puts union # 出力: 1, 2, 3, 4, 5これらの演算子はすべて、新しい配列を作成し、元の配列は変更しません。
チャレンジ
簡単カンマ区切りの整数を含む2行の入力を読み取ります:
- 1つ目の配列 (例:
1,2,3,4,5) - 2つ目の配列 (例:
3,4,5,6,7)
以下の操作を実行し、各結果をそれぞれの行に出力してください:
- 両方の配列を連結した各要素を出力します (
+を使用) - セパレータとして
---を出力します - 差分(1つ目の配列から2つ目の配列を引いたもの)の各要素を出力します (
-を使用) - セパレータとして
---を出力します - 積集合(共通の要素)の各要素を出力します (
&を使用) - セパレータとして
---を出力します - 和集合(重複なしで結合したもの)の各要素を出力します (
|を使用)
例えば、入力が 1,2,3,4,5 と 3,4,5,6,7 の場合、出力は以下のようになります:
1
2
3
4
5
3
4
5
6
7
---
1
2
---
3
4
5
---
1
2
3
4
5
6
7入力が 10,20,30 と 30,40,50 の場合、出力は以下のようになります:
10
20
30
30
40
50
---
10
20
---
30
---
10
20
30
40
50入力が 5,10,15 と 1,2,3 の場合、出力は以下のようになります:
5
10
15
1
2
3
---
5
10
15
---
---
5
10
15
1
2
3チートシート
Rubyは、配列の結合、比較、操作のための特別な演算子を提供しています:
+ 演算子は、2つの配列を連結します:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b # [1, 2, 3, 4, 5, 6]- 演算子は、最初の配列から2番目の配列に含まれる要素を取り除きます:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove # [1, 3, 5]& 演算子は、積集合(共通の要素)を返します:
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b # [3, 4]| 演算子は、和集合(重複を除いて結合したもの)を返します:
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b # [1, 2, 3, 4, 5]これらの演算子はすべて新しい配列を作成し、元の配列は変更しません。
自分で試してみよう
# 入力配列を読み込む
input1 = gets.chomp.split(',').map(&:to_i)
input2 = gets.chomp.split(',').map(&:to_i)
# TODO: 以下にコードを記述してください
# 以下の操作を実行します:
# 1. + を使用した結合
# 2. - を使用した差分
# 3. & を使用した積集合
# 4. | を使用した和集合
# 各結果を操作の間の区切り文字として "---" と共に表示しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。