반응형
코드1
a,b = map(int,input().split())
a_list = list(map(int,input().split()))
b_list = list(map(int,input().split()))
s = set()
for i in a_list:
s.add(i)
for i in b_list:
s.add(i)
anb = a+b - len(s)
print(a+b-2*anb)
처음 푼 풀이이다.
값을 받아서 집합 s에 a_list와 b_list의 값을 모두 넣어주었다. 집합은 중복을 제거해주기 때문에 a+b에서 집합 s의 길이를 빼면 두 리스트의 교집합 개수이다.
따라서 a+b에서 교집합*2를 빼주면 정답이 나온다.
코드2
a,b = map(int,input().split())
a_list = set(map(int,input().split()))
b_list = set(map(int,input().split()))
print(len(a_list ^ b_list))
다른 사람의 풀이를 봤는데 그냥 입력을 집합으로 받아서 set 연산을 이용하여 대칭 차집합을 바로 구할 수 있었다..
<set 자료형>
- 교집합 s1 $ s2
- 합집합 s1 | s2
- 차집합 s1 - s2
- 대칭차집합 s1 ^ s2
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 1043번 거짓말 (1) | 2023.01.17 |
---|---|
[백준][Python] 17219번 비밀번호 찾기 (0) | 2023.01.10 |
[백준][Python] 17298번 오큰수 (0) | 2023.01.06 |
[백준][Python] 1655번 가운데를 말해요 (0) | 2023.01.05 |
[백준][Python] 10815번 숫자 카드 (0) | 2023.01.04 |
댓글