본문 바로가기

PS/백준

[BOJ] 백준 1269 대칭 차집합 (Swift)

반응형

문제

https://www.acmicpc.net/problem/1269

 

1269번: 대칭 차집합

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어

www.acmicpc.net

풀이

(A 차집합 B) 요소의 개수 + (B 차집합 A) 요소의 개수출력해 주는 문제입니다.

즉, 대칭 차집합의 원소의 개수를 출력해주는 문제입니다.

A와 B를 Set 자료형으로 만들어 준 후, for문을 통해 A에 포함되지 않는 B의 요소 + B에 포함되지 않는 A의 요소를 구할 수도 있지만,
Swift의 Set 자료형에서는 subtracting라는 차집합 메서드가 구현되어 있습니다.

a.subtracting(b).count + b.subtracting(a).count 로 쉽게 구현이 가능합니다.

심지어, symmetricDifference라는 대칭 차집합 메서드도 구현이 되어있습니다.

a.symmetricDifference(b).count만 써도 되겠네요.

소스코드

후기

Set 자료형을 안다면 쉽게 풀 수 있는 문제입니다.
Set 자료형다양한 메서드들을 알고있다면 더 쉽게 풀 수 있습니다.
차집합, 대칭 차집합 뿐만 아니라, 합집합과 교집합 등도 지원합니다.

반응형