Algorithm/BOJ
백준 1822번 C++
poopooreum
2023. 7. 30. 15:31
반응형
백준 1822번 차집합
https://www.acmicpc.net/problem/1822
1822번: 차집합
첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소
www.acmicpc.net


정답 코드
#include<iostream>
#include<set>
using namespace std;
set<long long int>s1;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int a,b;
cin>>a>>b;
for(int x=0;x<a;x++){
long long int n;
cin>>n;
s1.insert(n);
}
for(int x=0;x<b;x++){
long long int n;
cin>>n;
set<long long int>::iterator it=s1.find(n);
if(it!=s1.end())
s1.erase(n);
}
if(s1.size()==0)
cout<<"0";
else{
cout<<s1.size()<<'\n';
set<long long int>::iterator iter;
for(iter = s1.begin(); iter != s1.end(); iter++){
cout << *iter << " " ;
}
}
}
문제 풀이
집합 자료구조와 반복자를 이용해서 풀 수 있습니다.
원소의 자료형 크기에 주의해야 하며 이외에는 set의 기본함수와 반복자를 이용해서 출력 및 판정하는 문제입니다.
집합(set)더 알아보기
반복자(iterator)더 알아보기
반응형