セットの和集合と積集合
Pythonのセットは、数学における集合と多くの点で似ています。セットは波括弧で定義されます。セットに対しては、和集合、積集合、差集合の操作を行うことができます。セットXとYの積集合 はPythonでは
&
で行います。セットXとYの和集合 は|
で行います。そして差集合 はシンプルな-
演算子で行うことができます。x = {3, 12, 5, 13}
y = {14, 15, 6, 3}
print(x, y) # {5, 3, 12, 13} {3, 15, 6, 14}
print(x & y) # {3}
print(x | y) # {3, 5, 6, 12, 13, 14, 15}
print(x - y) # {13, 12, 5}
- 二つのセットの積集合には、両方のセットに存在するすべての要素が含まれます。つまり、Pythonでは論理積
&
演算子で表されます(AとBの両方にある要素)。
- 二つのセットの和集合には、両方のセットのすべての要素が含まれます。つまり、Pythonでは論理和
|
演算子で表されます(AまたはBのどちらかにある要素)。
- 二つのセットの差集合には、セットAに存在しセットBに存在しない要素が含まれます。つまり、Pythonでは引き算の
-
演算子で表されます(AにあってBにない要素)。
チャレンジ
あなたは、各グループが1年間でさまざまなトピックについて複数のプレゼンテーションを作成するクラスの先生です。学生のグループが
n
つあり、各グループは1年間で1つ以上のプレゼンテーションを作成します。あなたが知りたいのは2つの数値です。1年間でカバーされた異なるトピックの数と、クラスのすべてのグループが発表したトピックの数です。入力の最初の行には、整数
n
が1つ含まれます。次のn
行には、各グループが発表したトピックがカンマとスペース ,
で区切られて含まれます。プログラムはスペースで区切られた2つの数値を出力する必要があります。最初の数値は合計で発表されたトピックの数を示し、2番目の数値はクラスのすべてのグループでカバーされたトピックの数を示します。
入力 | 出力 |
4
Neural Networks, Deep Learning, Machine Learning, AI
AI, Data Science, Sports Analytics, Deep Learning
Deep Learning, AI, Automation of jobs with AI
AI, Scientific thinking, Recent advances in NLP, Deep Learning | 9 2 |
1
Python, Django, Flask, AI, Backend | 5 5 |
解説:
- カバーされたユニークなトピックは9つあります:Deep Learning、Machine Learning、Neural Networks、Data Science、Sports Analytics、Scientific thinking、Automation of jobs with AI、Recent advances in NLP、AI
- すべてのグループでカバーされたトピックは2つあります:Deep Learning、AI
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB