C++ 문제풀이/백준 문제풀이

[백준 문제풀이 / 집합과 맵] 1764. 듣보잡

지노링 2022. 8. 11. 17:03
728x90

문제 내용 

듣지 못했던 집합 a 와 보지 못했던 b 의 공통 교집합 듣도 보도 못한 사람을 출력하는 문제

 

 

풀이

보지 못했던 사람을 먼저 입력받고 , 그 해당 사람을 체크 해둔다. 그리고 듣지 못했던 사람을 입력 받았을 때

그 사람이 만약 보지 못했던 사람이라면 그 사람을 듣보잡의 집합에 넣어준다.

그리고 사전순으로 출력해야 하기 때문에 sort 함수를 이용해준다.

#include <iostream>
#include <unordered_map>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;


int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	int n, m;
	cin >> n >> m;
	unordered_map<string, bool> noSee;

	for (int i = 0; i < n; ++i)
	{
		string s;
		cin >> s;

		noSee[s] = true;
	}

	vector<string> noSeeNoHeard;
	for (int i = 0; i < m; ++i)
	{
		string s;
		cin >> s;
		if (noSee[s] == true)
		{
			noSeeNoHeard.push_back(s);
		}
	}
	

	cout << noSeeNoHeard.size() << "\n";
	
	sort(noSeeNoHeard.begin(), noSeeNoHeard.end());

	for (int i = 0; i < noSeeNoHeard.size(); ++i)
	{
		cout << noSeeNoHeard[i] << "\n";
	}

}

 

728x90