1764번 - 듣보잡(c++)

🗒 1764번 문제

📌 binary_search 함수를 사용해서 듣보잡 찾기 ❗️

1️⃣ vector를 이용해서 보지 못한 사람과 결과 값을 넣는다.

2️⃣ 입력한 string 값을 vector에 push_back()

3️⃣ binary_search할 수 있도록 sort함수를 사용해서 vector를 정렬

4️⃣ 듣지 못한 사람 string를 입력하면서 보지 못한 사람 vector에 존재하는 지 확인 
-> binary_search 사용

5️⃣ 만약에 보지도 듣지도 못했다면 result vector에 push_back()하고 그 수를 세기

6️⃣ 사전순으로 출력해야 하기에 result도 sort함수를 사용해서 vector 정렬


➰ 코드로 나타낸 1764번 ➰

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    int notsee = 0, nothear = 0;
    int count = 0;
    vector<string> seeVector;
    vector<string> result;
    
    cin >> nothear >> notsee;
    // 듣지 못한 사람, 보지 못한 사람 수를 받기
    
    for (int i = 0; i < nothear; i++) {
        string s;
        cin >> s;
        seeVector.push_back(s);
    }
    // 보지 못한 사람을 각각 받고 vector에 넣기
    
    sort(seeVector.begin(), seeVector.end());
    
    for (int i = 0; i < notsee; i++) {
        string s;
        cin >> s;
        if(binary_search(seeVector.begin(), seeVector.end(), s)) {
            result.push_back(s);
            count++;
        }
    }
    // 보지 못한 사람, 듣지 못한 사람 비교 후 듣보잡이면 result에 넣기
    
    cout << count << endl;
    sort(result.begin(), result.end());
    
    for (string s : result)
        cout << s << endl;
    
    return 0;
}

좋은 웹페이지 즐겨찾기