최대 1 분 소요

Question

1269Q


Solution

  • a에 대한 집합을 set에 저장한다.
  • b에 대한 요소를 입력 받을 때 동시에 a와의 공통되는 요소가 있는지 검사한다.
  • 공통된 요소가 n개라면 전체 원소의 갯수 (a + b)에서 -2n을 한다. ()

Cord

#include <iostream>
#include <set>

using namespace std;

set<int> sA;

int main()
{
	int a, b, num;
	cin >> a >> b;
	int count = a + b;

	// A 집합 입력
	for (int idx = 0; idx < a; idx++)
	{
		cin >> num;
		sA.insert(num);
	}

	// B 집합 입력 과 동시에 공통된 원소 찾기
	for (int idx = 0; idx < b; idx++)
	{
		cin >> num;
		
		if (sA.find(num) != sA.end())
		{
			count -= 2;
		}
	}

	// 출력
	cout << count;

	return 0;
}

Result

1269

처음에는 a와 b에 대한 집합 set을 두가지로 나눠 저장하여 공통 원소를 찾았었다.
다시보니 굳이 b의 데이터를 저장할 필요가 없어 간추려 보았다.