C++ ) 1269 대칭 차집합

Blue·2023년 5월 4일
0

조건

집합 A,B 가 있을때 (A-B) (B-A)를 구하면 된다.
각 집합의 원소의 개수는 20만을 넘지 않는다.

이해

사실 STL 을 사용해도 되지만 목적은 알고리즘 풀이기 때문에 알고리즘적으로 접근했다.
각집합의 원소는 최대 20만이기에 A의 집합에 있는 값들을 Cnt 해주고 B의 집합에서 A의 집합의 값이 1이상이면 Ret+=1 해주어 값을 추가해줬다.

코드

#include <iostream>
#include <unordered_map>
using namespace std;

int N,M;
int ret;
unordered_map<int, int> m;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    cin >> N >> M;
    
    for(int i=0;i<N;i++) {
        int data;
        cin >> data;
        m[data]+=1;
    }
    
    for(int i=0;i<M;i++) {
        int data;
        cin >> data;
        m[data]+=1;
    }
    
    for(pair<int, int> temp:m) {
        if(temp.second==1) {
            ret+=1;
        }
    }
    
    cout << ret << "\n";
    
    return 0;
}

profile
할수있다가 아닌 해야한다!!

0개의 댓글