알고리즘

[백준] 1235 - 학생 번호

j9972 2023. 5. 17. 17:40
728x90

1. 문제

https://www.acmicpc.net/problem/1235

 

2. 접근

1. 데이터를 역순으로 체크를 해주는데, 모든 스택에서 반대순서로 str을 쌓되, 모든 값들이 다를때의 그 str의 길이를 출력한다

2. 데이터를 역순으로 스택에 넣어준다.

3. check 값이 str으로 쌓여가는것이다.

4. check 값이 res에 없을때 res에 쌓고 res에 쌓여있는 값이 n 과 같을때 출력하기

-> 설명을 듣는 독자님이,, 이해가 됬을지는 모르겠다.. 하지만 코드를 보면서 이해될테니 같이 봐주세요!

 

3.풀이

# 1235 실버4
import sys
input = sys.stdin.readline

nums = []
n = int(input())
for i in range(n):
    data = input().rstrip()
    nums.append(data[::-1])

cnt = 1
flag = False
for i in range(len(nums[0])):
    res = []
    check = ''
    for j in nums:
        check = j[:i+1]
        if check not in res:
            res.append(check)
            if len(set(res)) == n:
                flag = True
            #print('res :',res)
            check = ''
        else:
            cnt += 1
            break
    if flag == True:
        print(cnt)
        break