본문으로 바로가기
문제

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

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

소스코드
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;
map<string, int> m1;
vector<string> v;
int main() {
	ios_base::sync_with_stdio(false), cin.tie(NULL);
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n + m; i++) {
		string s;
		cin >> s;
		m1[s]++;
	}
	for (auto iter = m1.begin(); iter != m1.end(); iter++) {
		if (iter->second > 1) {
			v.push_back(iter->first);
		}
	}
	cout << v.size() << "\n";
	for (int i = 0; i < v.size(); i++) {
		cout << v[i] << "\n";
	}
}
해설

듣보잡과 명단을 한번에 맵에 쑤셔박은 다음 같은 이름일경우 카운트를 증가시켜서 구별시켜준다.

간단하게 맵에 대한 사용법만 알고있으면 문제를 해결할 수 있는 문제입니다.