문제 풀이/BOJ 문제 풀이
[BOJ알고리즘, C++]#1269_대칭 차집합, Set
Hardii2
2022. 12. 4. 20:53
[BOJ 알고리즘, C++] #1269_대칭 차집합, Set
BOJ 알고리즘 문제 풀이, 1269_대칭 차집합, Set
Set 컨테이너를 통해 두 집합의 대칭 차집합을 구합니다.
문제


풀이
- Set을 활용하면 아주 간단하게 풀 수 있는 문제입니다.
- 두 개의 집합 간 서로 중복되지 않는 원소들의 개수를 구합니다.
- Set 컨테이너는 항목들 간 중복을 허용하지 않습니다. 이러한 특징을 염두에 두고 풀이합니다.
코드
#include <iostream>
#include <set>
#include <algorithm> // find()를 활용하기 위해 <algorithm> 헤더를 추가합니다.
typedef long long ll;
using namespace std;
int main()
{
int N, T;
set<ll> s;
cin >> N >> T;
int set1Num = N;
int set2Num = T;
int res;
ll num;
for(int i=0; i<N; i++)
{
cin >> num;
s.insert(num);
}
for(int i=0; i<T; i++)
{
cin >> num;
// find(KEY) : 찾고자하는 Key 값이 존재하면 해당 Key 값을 가리키는 반복자를 반환하지만,
// 없으면 마지막 항목 다음을 가리키는 반복자를(s.end()) 반환합니다.
auto it = s.find(num);
if(it != end(s))
{
set1Num--;
set2Num--;
}
}
cout << set1Num + set2Num << endl;
}