Post

백준 1764번, 듣보잡

백준 1764번 c++ 문제풀이


문제:

김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.

풀이:

  1. 보도 못한 사람의 명단을 벡터에 정렬.
  2. 벡터 오름차순으로 정렬.
  3. 듣도 보도 못한 사람 명단 입력 시, 벡터에 저장되어 있는지 이분탐색으로 검색.
  4. 저장되어 있다면 새로운 벡터에 저장.
  5. 오름 차순으로 정렬 후, 출력.

코드:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <algorithm>
#include <vector>


using namespace std;

int main(void){

    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n, m;

    vector<string> v1;
    vector<string> v2;
    
    cin >> n >> m;

    for(int i=0;i<n;i++){
        string name;

        cin >> name;

        v1.push_back(name);
    }

    sort(v1.begin(),v1.end());

    for(int i=0;i<m;i++){
        string name;

        cin >> name;

        if(binary_search(v1.begin(),v1.end(),name)){
            v2.push_back(name);
        }
    }
    
    sort(v2.begin(),v2.end());

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

    return 0;   
}   

감사합니다.

This post is licensed under CC BY 4.0 by the author.