반응형
집합(Set)
집합표현방법엔 원소나열법(tabular form), 조건제시법(set-builder form), 벤 다이어그램(Venn diagram) 등이 있다.
조건제시법 - B = {2B | B는 정수, 1 ≤ B ≤ 5}면 {2, 4}인 집합을 말하듯이 조건을 제시해서 표현하는 방법이다.
집합의 크기는 집합의 원소의 개수를 의미한다.
대표적인 집합의 종류에 대해 아주 간단히만 알아보고 넘어가자.
집합에는 교집합, 합집합, 차집합, 여집합 등이 있다.
- 교집합(Intersection) : A ∩ B = {x | x∈A and x∈B}
- 합집합(Union) : A ∪ B = {x | x∈A or x∈B}
- 차집합(Difference of sets) : A - B = {x | x∈A and x∉B}
- 여집합(Complement) : A^c = { x | x∈U and x∉A}
집합(Java)
자바 컬렉션 프레임워크에 HashSet, TreeSet, LinkedHashSet 등이 있고, 이를 통해 집합을 구현할 수 있다.
하는일은 배열과 비슷한데, 데이터 중복을 검사하기 위해 삽입 전에 검색을 진행하므로 배열보다 시간복잡도가 높다.
https://nukoori.tistory.com/15
자바 집합 함수
결과는 a에 들어간다. 값 추가는 add 함수로 가능하다.
- 교집합 - a.retainAll(b); // a, b는 Set이다.(HashSet, TreeSet)
- 합집합 - a.addAll(b);
- 차집합 - a.removeAll(b);
집합(Python)
파이썬에서 집합은 파이썬 2.3부터 지원하기 시작한 자료형으로 집합에 관련된 것을 쉽게 처리할 수 있다.
s1 = set([1,2,3])과 같이 set 키워드를 통해 만들 수 있다. 집합 자료형에 대한 자세한 설명은 파이썬 포스팅에서 해보도록 하고, 여기서는 교집합, 합집합, 차집합을 어떻게 만드는지만 알아보자.
값 추가는 add, 여러개 추가는 update, 값 제거는 remove를 사용한다.
- 교집합 - a & b 아니면 a.intersection(b)도 가능하다.
- 합집합 - a | b 아니면 a.union(b)도 가능하다.
- 차집합 - a - b 아니면 a.difference(b)도 가능하다.
반응형