Learn to share,Share to learn

1269 집합의 사용 본문

알고리즘

1269 집합의 사용

Rogue One 2024. 1. 18. 18:12
N,M = map(int,input().split())
A,B,C = set()

A=map(int,input().split())
B=map(int,input().split())
C.add(A-B)
C.add(B-A)

print(len(C))

 

브레인 스토밍

 

이렇게 할경우 A,B,C 집합이 한번에 싹 생기는게 아니였다. 하나하나 설정해줘야함..

또, A나 B나 저러면 집합이 아니라 맵 객체를 반환하는거라 집합으로 변환을 또 해줘야 한다.

즉 그냥 A = set(map(int,input().split()))로 하면 되는거였는데 

 

그리고 A-B는 집합을 리턴하는거라 저렇게가 아니라 update를 써야 하더라

그런데 더 좋은 방법을 찾았다.

N, M = map(int, input().split())
A = set(map(int, input().split()))
B = set(map(int, input().split()))

symmetric_difference = A ^ B  # 대칭 차집합 계산

print(len(symmetric_difference))

 

좀 더 직관적이게는

 

N, M = map(int, input().split())
A = set(map(int, input().split()))
B = set(map(int, input().split()))

# 차집합을 구한 후 합집합으로 결합
symmetric_difference = (A - B) | (B - A)

print(len(symmetric_difference))