본문 바로가기
알고리즘/자료구조

[백준][Python] 1269번 대칭 차집합

by 임짠짠 2023. 1. 9.
반응형
 

1269번: 대칭 차집합

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

www.acmicpc.net

 

코드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

 

반응형

댓글