https://www.acmicpc.net/problem/1269
1269번: 대칭 차집합
첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어
www.acmicpc.net
풀이 :
- 이전 문제들과 마찬가지로 계속 map의 기능을 활용하여 쉽게 풀 수 있다
- 집합 a의 원소 - 집합 b의 원소 즉, a와 b가 일치 하지 않는 원소의 갯수를 카운트 해주면 된다
- 따라서 map에 전부 넣어서 카운트를 하고, value값이 1이라면 겹치지 않는 뜻이기 때문에
1일때만 카운트 해주면 답을 쉽게 구할 수 있다
코드 :
#include <iostream>
#include <map>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int a, b, num, ans = 0;
map<int, int> m;
cin >> a >> b;
while(a--){
cin >> num;
m[num]++; // a 집합의 수를 map에 넣으면서 카운트
}
while(b--){
cin >> num;
m[num]++; // b 집합의 수도 같은 map에 넣으면서 카운트
}
for(auto x : m){
if(x.second == 1){ // 1인 경우 ans 카운트
ans++;
}
}
cout << ans << '\n';
}
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 2559번 : 수열 (0) | 2023.03.06 |
---|---|
[백준 C++] 1065번 : 한수 (0) | 2023.03.05 |
[백준 C++] 10816번 : 숫자 카드 2 (0) | 2023.03.03 |
[백준 C++] 11652번 : 카드 (0) | 2023.03.02 |
[백준 C++] 1436번 : 영화감독 숌 (0) | 2023.03.01 |