View
알고리즘 분류: 자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵
문제 링크: https://www.acmicpc.net/problem/1764
【 풀이 】
반복자를 생성하고 map의 멤버 함수 중 하나인 find로 key 값을 저장한다.
map.find(key)는 찾고자 하는 값이 없으면 map.end()를 반환하기 때문에, 이를 이용해 개수와 key의 value를 1씩 증가시킨다.
그 후 map을 순회하면서, value값이 1인 key를 출력해 주면 된다.
【 코드 】
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(void)
{
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
map<string, int>hear;
map<string, int>::iterator it;
string id;
int cnt = 0;
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> id;
hear.insert(make_pair(id, 0));
}
for (int i = 1; i <= m; i++)
{
cin >> id;
it = hear.find(id);
if (it != hear.end())
{
cnt++;
hear[id]++;
}
}
cout << cnt<<'\n';
auto iter = hear.begin();
while (iter != hear.end())
{
if (iter->second == 1)
cout << iter->first << '\n';
++iter;
}
return 0;
}
728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 11399번: ATM [C++] (0) | 2023.05.17 |
---|---|
[백준] 11047번: 동전 0 [C++] (0) | 2023.05.16 |
[백준] 18258번: 큐 2 [C++] (0) | 2023.05.14 |
[백준] 1620번: 나는야 포켓몬 마스터 이다솜 [C++] (0) | 2023.05.13 |
[백준] 11723번: 집합 [C++] (0) | 2023.05.12 |
reply