#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 를 올려줬다.