티스토리 뷰

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)더 알아보기

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1912번 C++  (0) 2023.07.30
백준 1904번 C++  (0) 2023.07.30
백준 1806번 C++  (0) 2023.07.30
백준 1780번 C++  (0) 2023.07.26
백준 1764번 C++  (0) 2023.07.25
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함