A,B의 합집합에서 서로 겹친 교집합의 크기를 빼는 문제이다.
map에 모든 수를 담으면 자연스럽게 합집합(map은 중복된 자료를 제한한다)이 만들어지고 여기서 find 함수를 통해 교집합의 크기를 구해준다.
#include<iostream>
#include<map>
using namespace std;
map<int, int>_A;
int main()
{
int A, B = 0;
int result = 0;
cin >> A >> B;
int num = 0;
for (int i = 0;i < A;i++)
{
cin >> num;
_A.insert(make_pair(num, num));
}
for (int i = 0;i < B;i++)
{
cin >> num;
map<int,int>::iterator iter = _A.find(num);
if (iter != _A.end())
{
result++;
}
_A.insert(make_pair(num,num));
}
cout << _A.size() - result;
return 0;
}