맛동산이

(백준 1269) 대칭 차집합 본문

알고리즘/백준

(백준 1269) 대칭 차집합

진ddang 2022. 6. 29. 16:36

문제

https://www.acmicpc.net/problem/1269

 

1269번: 대칭 차집합

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어

www.acmicpc.net

정답코드

#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>

using namespace std;

// 3 5
// 1 2 4
// 2 3 4 5 6

int main()
{
    int n, m;
    cin >> n >> m;
    set<int> arr1;
    set<int> arr2;
    vector<int> ar1;
    vector<int> ar2;
    int num1, num2;
    int count1, count2;
    count1 = n;
    count2 = m;
    for (int a = 0; a < n; a++)
    {
        cin >> num1;
        arr1.insert(num1);
        ar1.push_back(num1);
    }
    for (int a = 0; a < m; a++)
    {
        cin >> num2;
        arr2.insert(num2);
        ar2.push_back(num2);
    }
    for (int a = 0; a < n; a++)
    {
        if (arr2.find(ar1[a]) != arr2.end())
        {
            count1--;
        }
    }
    for (int a = 0; a < m; a++)
    {
        if (arr1.find(ar2[a]) != arr1.end())
        {
            count2--;
        }
    }
    int answer = count1 + count2;
    cout << answer;
}

아주 쉽게 풀엇다. 

기무링, 이제 set vector 어느정도 쓸줄 알겟다!

아무튼 문제 해석을 하자면, 제한시간이 2초기 때문에 최대한 빠른 탐색을 위해서 set 자료구조를 사용하여 find에서 2분탐색을 하게 하였다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

(백준 9012 c++) 괄호  (0) 2022.07.05
(백준 1764) 듣보잡  (0) 2022.06.29
(백준 14425) 문자열 집합  (0) 2022.06.27
(백준 10815) 숫자 카드  (0) 2022.06.26
(백준 10814) 나이순 정렬  (0) 2022.06.25