Algorithm/BOJ
백준 1269번 C++
poopooreum
2023. 7. 22. 18:48
반응형
백준 1269번 대총 차집합
https://www.acmicpc.net/problem/1269
1269번: 대칭 차집합
첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어
www.acmicpc.net


정답 코드
#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
set<int>input1;
set<int>input2;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m;
cin>>n>>m;
for(int x=0;x<n;x++){
int a;
cin>>a;
input1.insert(a);
}
for(int x=0;x<m;x++){
int a;
cin>>a;
input2.insert(a);
}
int first = 0;
set<int>::iterator iter;
for (iter = input1.begin(); iter != input1.end(); iter++) {
if (input2.find(*iter) == input2.end()) {
first++;
}
}
int second = 0;
for (iter = input2.begin(); iter != input2.end(); iter++) {
if (input1.find(*iter) == input1.end()) {
second++;
}
}
cout << first + second;
}
문제 풀이
자료구조 set을 이용하여 풀 수 있는 문제입니다. set은 중복을 허용하지 않는 특성을 가지고 있습니다. 두 개의 set을 각각 빼줘서 나온 개수를 더해주면 됩니다.
반응형