Post

[BOJ] 대칭 차집합 - 1269 (S4)

[BOJ] 대칭 차집합 - 1269 (S4)

22/10/4

시간 제한메모리 제한
2 초256 MB

문제

자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 이때, 두 집합의 대칭 차집합의 원소의 개수를 출력하는 프로그램을 작성하시오. 두 집합 A와 B가 있을 때, (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 한다.

예를 들어, A = { 1, 2, 4 } 이고, B = { 2, 3, 4, 5, 6 } 라고 할 때,  A-B = { 1 } 이고, B-A = { 3, 5, 6 } 이므로, 대칭 차집합의 원소의 개수는 1 + 3 = 4개이다.

입력

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어진다. 각 집합의 원소의 개수는 200,000을 넘지 않으며, 모든 원소의 값은 100,000,000을 넘지 않는다.

출력

첫째 줄에 대칭 차집합의 원소의 개수를 출력한다.

풀이

대칭 차집합의 정의에 따라 그대로 코드로 작성하면 되는 문제다. 대칭 차집합의 각 차집합 (A-B)와 (B-A)는 교집합이 무조건 공집합이므로 각 차집합의 원소 개수를 더하는 것으로 대칭 차집합의 원소 개수를 구할 수 있다.

코드

1
2
3
4
input()
a = set(map(int, input().split()))
b = set(map(int, input().split()))
print(len(a - b) + len(b - a))
This post is licensed under CC BY 4.0 by the author.