백준/구현

[백준 5052번 / C++] 전화번호 목록

배발자 2022. 3. 2.

목차

    반응형

    #접근방법 

    1. 문자열을 담고 있는 벡터를 sort  해준다. 
    2. 접두어는 현재 벡터 문자열 이전의 문자열이기 때문에  "v[i].find(v[i - 1])" 의 코드를 통해 체크해준다. 
    3. 만약 0이라면 접두어라는 의미이며 0이 아니라면 접두어가 아니라는 뜻이다. 

    * 0의 의미는 해당 문자열을 찾았을 때 시작 인덱스 번호를 뜻함. 

    
      
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <string>
    using namespace std;
    int main() {
    int n; cin >> n;
    while (n--) {
    int number; cin >> number;
    string result = "YES";
    vector <string> vs;
    for (int i = 0; i < number; i++) {
    string s; cin >> s;
    vs.push_back(s);
    }
    sort(vs.begin(), vs.end());
    for (int i = 1; i < number; i++) {
    if (vs[i].find(vs[i - 1]) == 0) {
    result = "NO";
    break;
    }
    }
    cout << result << "\n";
    }
    }

    https://www.acmicpc.net/problem/5052

     

    [백준 5052번 / C++] 전화번호 목록

    반응형

    댓글