Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

[백준/BOJ] 1235 학생 번호 본문

Programming/BOJ

[백준/BOJ] 1235 학생 번호

he1fire 2020. 9. 21. 02:31
728x90

문제 : 1235 학생 번호

 

1235번: 학생 번호

첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부�

www.acmicpc.net

학생 번호가 주어지면 뒤에서부터 잘라 모든 학생을

구분할 수 있는 최소 길이를 출력하는 문제이다.

입력받은 문자열을 뒤집은 뒤

부분 문자열로 잘라 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