문자열에서 뒤의 k자리만 추려서 set에 저장한 다음 set의 크기와 학생의 수가 같다면 모든 학생들의 번호가 다른 것이므로 k출력.
코드
#include <stdio.h>
#include <iostream>
#include <set>
#include <vector>
#include <string>
using namespace std;
set <string> S;
vector <string> V;
void Get_K(int N, int len) {
int k = 1;
while (1) {
// 뒤에서 k자리 수 뽑아내서 set에 저장
for (int i = 0; i < N; i++) S.insert(V[i].substr(len - k, len));
// 겹치는 숫자가 없다면 답
if (S.size() == N) {
printf("%d", k);
return;
}
S.clear();
k++;
}
}
int main() {
int N, n;
string S;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
cin >> S;
V.push_back(S);
}
Get_K(N, V[0].length());
return 0;
}