JavaScript로 Set(집합), 관련 함수(합집합, 교집합, 차집합)들 구현하기
Set 자료구조
Set(집합) 자료구조란, 값들의 집합을 이야기한다. 우리가 수학 시간에 배웠던 그 집합이라고 보면된다. 집합 자료구조의 가장 큰 특징은 하나의 값은 Set(집합) 안에 오로지 한 개만 존재한다 이다.
즉, 하나의 값들이 한 번만 나오는다는 특징(unique)은 Set의 성질이다. JavaScript 에서는 Set
클래스가 내장되어 있다. 잘 사용하기만 하면 끝.
심지어 python 에서는 set
클래스에 대해 합집합, 교집합, 차집합을 너무나 쉽게 구할 수 있다. 정리 및 비교를 위해 잠깐 짚고 넘어가보면, 바로 직관적으로 떠오르는 & (교집합), | (합집합), - (차집합)
을 사용하면 된다.
- |: 합집합 union
- &: 교집합 intersect
- -: 차집합 complement
JavaScript 에서도 위와 같이 고유한 값들의 집합으로 변환시키는 Set클래스가 있지만, python 처럼 집합 연산자를 제공하지는 않는다. 알고리즘 문제를 풀 때 친구는 집합 연산자를 사용해서 쉽게 푸는 모습에 충격을 받고 나도 나만의 집합 메소드를 구현해 봐야겠다고 생각했다.
JavaSciprt ES6+ 에 추가된 다양한 array 메소드들은 정말 코딩을 우아하고 즐겁게 해준다.