블로그 언저리인 무언가
[백준/BOJ] 1235 학생 번호 본문
728x90
문제 : 1235 학생 번호
학생 번호가 주어지면 뒤에서부터 잘라 모든 학생을
구분할 수 있는 최소 길이를 출력하는 문제이다.
입력받은 문자열을 뒤집은 뒤
부분 문자열로 잘라 map에 저장해
똑같은 key를 가진것이 있나 체크하고
있다면 길이를 1늘려 반복해 최소 길이를 찾게 했다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll N, ans=1;
string arr[1005];
cin >> N;
for (int i=0;i<N;i++){
cin >> arr[i];
reverse(arr[i].begin(),arr[i].end());
}
while (1){
map<string,ll> m;
ll chk=1;
for (int i=0;i<N;i++){
if (m.find(arr[i].substr(0,ans))!=m.end()){
chk=0;
break;
}
m[arr[i].substr(0,ans)]=1;
}
if (chk)
break;
ans++;
}
cout << ans;
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[백준/BOJ] 14889 스타트와 링크 (0) | 2020.09.21 |
---|---|
[백준/BOJ] 10779 쇠막대기 (0) | 2020.09.21 |
[백준/BOJ] 1668 트로피 진열 (0) | 2020.09.19 |
[백준/BOJ] 1058 친구 (0) | 2020.09.19 |
[백준/BOJ] 2166 다각형의 면적 (1) | 2020.09.19 |
Comments