알고리즘/백준
(백준 1764) 듣보잡
진ddang
2022. 6. 29. 17:39
문제
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
정답코드
#include <string>
#include <algorithm>
#include <set>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
set<string> arr1;
string st1;
string st2;
set<string> answer;
for (int a = 0; a < n; a++)
{
cin >> st1;
arr1.insert(st1);
}
for (int a = 0; a < m; a++)
{
cin >> st2;
if (arr1.find(st2) != arr1.end())
{
answer.insert(st2);
}
}
cout << answer.size() << "\n";
for (auto i : answer)
{
cout << i << endl;
}
}
처음에는 vector answer을 만들어서 삽입하고, 출력하는 방식을 사용했는데 그렇게 하면, 틀리는듯?
왜그런지는 모르겟다.
for(auto i : answer)
이 방식의 출력을 써야할것 같다. 앞으로는
그거 외에는 그냥 전형적인 이분탐색이기 때문에, set을 사용하면 쉽게 할수 있으며 실제로 binary search를 구현해서 사용해도 된다.
반응형