자료구조
집합(Set)
꾸준2
2020. 6. 30. 11:37
집합 : 중복되지 않은 항목들의 그룹
장점
1. 유일한 항목을 확인하고 추가하기 때문에 O(1) 상수 시간이 걸린다.(해시 테이블의 구현을 기초로하기 때문)
사용법
var setA = new Set();
속성
(집합 길이)
size -> setA.size
메소드
(원소 추가)
.add -> setA.add(값)
(원소 삭제)
.delete -> setA.delete(값)
(원소 포함)
.has -> setA.has(값)
(원소 모두 삭제)
.clear -> setA.clear()
var setA = new Set()
// 추가
setA.add(1)
setA.add(3)
setA.add(5)
console.log(setA) // Set { 1, 3, 5 }
// 삭제
setA.delete(3)
console.log(setA)// Set { 1, 5 }
// 포함
console.log(setA.has(3)) // false
console.log(setA.has(1)) // true
// 길이 확인
console.log(setA.size) // 2
// 모두 삭제
setA.clear()
console.log(setA) // set{}
console.log(setA.size) // 0
교집합(interrsection)
두 집합의 공통 값 추출
var setA = new Set([1,2,3,4,5])
var setB = new Set([1,3,5])
var intersection = new Set();
for(var common of setA) {
if(setB.has(common)) {
intersection.add(common)
}
}
console.log(intersection) // Set { 1, 3, 5 }
합집합(union)
두 집합의 모든 값들을 포함하고 중복된 값은 제외
var setA = new Set([2,4,6,8,10])
var setB = new Set([1,3,5,7,9,2,4,6])
var union = new Set(setA);
for(var sum of setB) {
union.add(sum)
}
console.log(union) // Set { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 }
차집합(difference)
두 집합의 공통되지 않은 값
var setA = new Set([2,4,6,8,10])
var setB = new Set([1,3,5,7,9,2,4,6])
var difference = new Set(setA);
for(var sum of setB) {
difference.delete(sum)
}
console.log(difference) // Set Set { 8, 10 }