코딩테스트 & 문제 풀이

[Python]백준_1269 : 대칭 차집합

Hicecream 2023. 11. 4. 00:02

2022년 12월 6일에 작성됨

 

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

 

1269번: 대칭 차집합

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

www.acmicpc.net

 

 

문제 분석

(A-B)와 (B-A)의 길이의 합을 출력하면 되는 문제

 

 

소스 코드 (⭕)

import sys
input = sys.stdin.readline

n, m = map(int, input().split())

a = set(map(int, input().split()))
b = set(map(int, input().split()))

print(len(a-b)+len(b-a))

 

코드 분석

set() 함수는 키 값만 있는 딕셔너리 형태로 중복되지 않는 원소를 얻을 때 주로 사용한다. 딕셔너리랑 마찬가지로 순서가 없다.

1. A의 원소 개수 n과 B의 원소 개수 m을 입력받는다.

2. 집합 A와 B의 모든 원소를 각각 set 함수를 적용시켜서 중복 원소 없이 a와 b에 넣어준다.

3. (A-B)와 (B-A)의 합집합이 대칭 차집합이므로, 대칭 차집합의 원소의 개수는 (a-b)길이 + (b-a)길이가 된다.

 

 

 

end

set() 함수에 대해 알게 되었다. 보통 집합에서 많이 쓰인다고 한다.