집합 (Set)
1. 집합
- 특정 조건에 맞는 원소들의 모임
- 집합 표현 방법
2. 교집합
- 두 집합이 공통으로 포함하는 원소로 이루어진 집합
3. 합집합
- 어느 하나에라도 속하는 원소들을 모두 모은 집합
4. 차집합
- A(or B)에만 속하는 원소들의 집합
5. 여집합
- 전체집합(U) 중 A의 원소가 아닌 것들의 집합
(실습 : 집합)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// ArrayList를 사용한 집합 구현 실습 (집합 관련 연산 사용 X)
import java.util.ArrayList;
class MySet {
// ArrayList
ArrayList<Integer> list;
// 생성자1
MySet() {
this.list = new ArrayList<Integer>();
}
// 생성자 2
MySet(int[] arr) {
this.list = new ArrayList<Integer>();
for (int item: arr) {
this.list.add(item);
}
}
// 원소 추가 (중복 X)
public void add(int x) {
for (int item : this.list) {
if (item == x) {
return;
}
}
this.list.add(x);
}
// 교집합
public MySet retainAll(MySet b) {
MySet result = new MySet();
for (int itemA : this.list) {
for (int itemB : b.list) {
if (itemA == itemB) {
result.add(itemA);
}
}
}
return result;
}
// 합집합
public MySet addAll(MySet b) {
MySet result = new MySet();
for (int itemA : this.list) {
result.add(itemA);
}
for (int itemB : this.list) {
result.add(itemB);
}
return result;
}
// 차집합
public MySet removeAll(MySet b) {
MySet result = new MySet();
for (int itemA : this.list) {
boolean containFlag = false;
for (int itemB : b.list) {
if (itemA == itemB) {
containFlag = true;
break;
}
}
if (!containFlag) {
result.add(itemA);
}
}
return result;
}
}
public class Practice {
public static void main(String[] args) {
// Test code
MySet a = new MySet();
a.add(1);
a.add(1);
a.add(1);
System.out.println(a.list);
a.add(2);
a.add(3);
System.out.println(a.list);
a = new MySet(new int[]{1, 2, 3, 4, 5});
MySet b = new MySet(new int[]{2, 4, 6, 8, 10});
System.out.println("a: " + a.list);
System.out.println("b: " + b.list);
MySet result = a.retainAll(b);
System.out.println("교집합: " + result.list);
result = a.addAll(b);
System.out.println("합집합: " + result.list);
result = a.removeAll(b);
System.out.println("차집합: " + result.list);
}
}
This post is licensed under CC BY 4.0 by the author.