728x90
출처
https://www.acmicpc.net/problem/1269
내 풀이
#include<iostream>
#include<map>
using namespace std;
int A = 0, B = 0;
int input = 0;
int result = 0;
map<int,int>mp;
int main()
{
cin >> A >> B;
int result = A;
for (int i = 0; i < A; i++)
{
cin >> input;
mp[input] = 1;
}
for (int i = 0; i < B; i++)
{
cin >> input;
if (mp[input]==1)
{
mp[input] = 2;
result--;
}
else
{
mp[input] = 1;
result++;
}
}
cout << result;
}
해설
맵을 선언해주고 A, B를 입력받은 후 일단 결과값에 A값을 대입해준다.
그 후 A집합을 입력받고 B집합을 입력받을 때 만일 A집합하고 겹친다면 결과값을 하나 빼준 뒤
맵의 Value값을 2로 변경, 그게 아니면 겹치는게 없으므로 결과값을 1더해준다. 이 과정을 반복하였다.
느낀점
잘 풀고 있는지 모르게따
'백준 코딩테스트 > 실버' 카테고리의 다른 글
2693) N번째 큰 수 (C++) (0) | 2022.05.21 |
---|---|
11478) 서로 다른 부분 문자열의 개수 (C++) (0) | 2022.05.17 |
1620) 나는야 포켓몬 마스터 이다솜 (C++) (0) | 2022.05.15 |
14425) 문자열 집합 (C++) (0) | 2022.05.11 |
4949) 균형잡힌 세상 (C++) (0) | 2022.05.10 |