개발/알고리즘
백준 1764번 : 듣보잡
라사 RASA
2020. 6. 27. 15:51
문제 설명
이 문제는 듣도 못한 사람과 보도 못한 사람의 명단에 모두 속해있는 사람의 명단을 구하는 문제이다.
접근 방법
처음에는 곧이곧대로 명단 2개 만들어서 중복되는 사람 찾고 result vector 에 넣었는데 그럴 필요 없었다. 하나의 vector 에 두 명단을 다 집어 넣고 중복되는 사람을 찾으면 된다. 중복된 사람은 정렬했을 때 이름이 반복되는 사람을 찾는 방법으로 찾았다.
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main(void)
{
int N,M,cnt=0;
string temp;
vector<string> name;
vector<string> result;
cin>>N>>M;
for(int i=0; i<N+M; ++i)
{
cin>>temp;
name.push_back(temp);
}
sort(name.begin(), name.end());
for(int i=0; i<name.size()-1; ++i)
{
if(name.at(i)==name.at(i+1))
{
cnt++;
result.push_back(name.at(i));
}
}
cout<<cnt<<endl;
for(int i=0; i<result.size(); ++i)
cout<<result.at(i)<<endl;
return 0;
}