맛동산이

(백준 1764) 듣보잡 본문

알고리즘/백준

(백준 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를 구현해서 사용해도 된다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

(백준 2164 c++) 카드2  (0) 2022.07.05
(백준 9012 c++) 괄호  (0) 2022.07.05
(백준 1269) 대칭 차집합  (0) 2022.06.29
(백준 14425) 문자열 집합  (0) 2022.06.27
(백준 10815) 숫자 카드  (0) 2022.06.26