N명의 듣도 못한 사람과 M명의 보도 못한 사람이 주어지고,
듣지고 보지도 못한 사람의 수와 이름을 사전순으로 출력하는 문제이다.
N과 M은 500,000 이하의 자연수이다.
이름을 key
로 하고 언급된 수를 value
로 갖는 map
에 담아 풀었다.
그나저나 정말 오랜만에 듣는 단어다.
시간이 정말 빠르구나..
#include <iostream>
#include <map>
#include <string>
using namespace std;
int n, m;
int cnt = 0;
string tmp;
map<string, int> name;
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> tmp;
name[tmp]++;
}
for (int i = 0; i < m; i++) {
cin >> tmp;
name[tmp]++;
if (name[tmp] == 2) cnt++;
}
cout << cnt << "\n";
for (auto it : name) {
if (it.second == 2) {
cout << it.first << "\n";
}
}
return 0;
}