백준[1764] - 듣보잡

문제

백준 1764 문제 보기

접근 방법

set 자료구조를 활용하면 쉽게 해결할 수 있다. 먼저, 들어보지 못한 사람을 모두 set 자료구조에 저장한뒤 이후 입력되는 보지도 못한 사람을 set에서 찾아서 정답을 출력하면 된다.

코드

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>

using namespace std;

int n, m;
set<string> hear;
vector<string> ans;

int main() {
    cin >> n >> m;

    for(int i = 0; i < n; i ++) {
        string h;
        cin >> h;
        // 들어보지 못한 사람을 모두 set에 저장
        hear.insert(h);
    }

    for(int i = 0; i < m; i ++) {
        string s;
        cin >> s;
        // 보지도 못한 사람을 set에서 찾음
        auto it = hear.find(s);
        // 찾았다면 정답 배열에 저장
        if(it != hear.end()) {
            ans.push_back(*it);
        }
    }

    cout << ans.size() << "\n";
    // 알파벳 순서대로 정렬
    sort(ans.begin(), ans.end());
    for(int i = 0; i < ans.size(); i ++) {
        cout << ans[i] << "\n";
    }
    return 0;
}
Share