iOS/Swift

[Swift] 집합(Set)의 메서드

Dev.Andy 2023. 6. 14. 23:59

머리말

공식 문서 링크

Sets - Collection Types

글을 쓰게 된 이유

1. 알고리즘 문제에서 사용하게 된 집합(Set)의 메서드

이번에 푼 알고리즘 문제에서 집합에 관련한 문제가 나왔는데, 컬렉션 타입 중에 집합은 거의 사용해 본 적이 없어서 이번에 정리를 하게 되었다.

2. 알고리즘 링크

코딩테스트 연습 - [1차] 뉴스 클러스터링 | 프로그래머스 스쿨

 

집합의 연산 동작

연산 동작의 특징은 아래와 같이 메서드와 파라미터를 이용해 구하며, 새로운 집합을 생성하는 것이다.

Swift의 집합 연산
Swift의 집합 연산

 

 

1. 교집합(Intersection)

두 집합의 공통된 값을 가지는 집합

2. 대칭차집합(Symmetric Difference)

두 집합을 더하되, 교집합을 제외한 집합

3. 합집합(Union)

두 집합의 모든 값을 더한 집합(요소가 겹칠 경우 제외)

4. 차집합(Subtracting)

특정 집합에서 다른 집합과의 교집합을 제외한 집합

 

예시 코드

(공식 문서 참고)

let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]

oddDigits.union(evenDigits).sorted()
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
oddDigits.intersection(evenDigits).sorted()
// []
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
// [1, 9]
oddDigits.symmetricDifference(singleDigitPrimeNumbers).sorted()
// [1, 2, 9]