자라는 개발자/문제풀이

백준 c++ 1235 학생 번호

자란다 2022. 1. 19. 23:24
728x90
반응형

1235 학생 번호

문제풀이

#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
void fast_io(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
int main()
{
    vector<string> v;
    fast_io();
    int n, res = 1;
    cin >> n;
    while (n--)
    {
        string str;
        cin >> str;
        reverse(str.begin(), str.end());
        v.push_back(str);
    }
    while (true)
    {
        set<string> s;
        for (int i = 0; i < v.size(); i++)
        {
            s.insert(v[i].substr(0, res));
        }
        if (s.size() == v.size())
            break;
        else
            res++;
    }
    cout << res;
}

입력받은 문자열을 뒤집어서 벡터에 넣고
각문자열별로 0-res 까지 잘라서 set에 넣었다.
셋 자체적으로 이미 같은 원소가 있다면 이를 insert 하지 않는 특성을 이용했다.
마지막에 입력받은 학생수 == set.size() 가 같다면 결과값 나오게 했고 그게 아니면 중복값이 있는 것이니 res 를 올려줬다.

728x90
반응형