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() 함수에 대해 알게 되었다. 보통 집합에서 많이 쓰인다고 한다.
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]백준_14696 : 딱지놀이 (1) | 2023.11.05 |
---|---|
[Python]백준_14425 : 문자열 집합 (0) | 2023.11.04 |
[Python]백준_9733 : 꿀벌 (0) | 2023.11.03 |
[C]백준_2193 : 이친수 (4) | 2023.11.02 |
[C]백준_13699 : 점화식 (1) | 2023.11.01 |