집합 A,B 가 있을때 (A-B) (B-A)를 구하면 된다.
각 집합의 원소의 개수는 20만을 넘지 않는다.
사실 STL 을 사용해도 되지만 목적은 알고리즘 풀이기 때문에 알고리즘적으로 접근했다.
각집합의 원소는 최대 20만이기에 A의 집합에 있는 값들을 Cnt 해주고 B의 집합에서 A의 집합의 값이 1이상이면 Ret+=1 해주어 값을 추가해줬다.
#include <iostream>
#include <unordered_map>
using namespace std;
int N,M;
int ret;
unordered_map<int, int> m;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N >> M;
for(int i=0;i<N;i++) {
int data;
cin >> data;
m[data]+=1;
}
for(int i=0;i<M;i++) {
int data;
cin >> data;
m[data]+=1;
}
for(pair<int, int> temp:m) {
if(temp.second==1) {
ret+=1;
}
}
cout << ret << "\n";
return 0;
}