import sys

n_input = sys.stdin.readline

# 학생의 수를 입력 받습니다.
N = int(n_input().rstrip())

# 학생 번호를 입력 받아 리스트에 저장합니다.
students = [n_input().rstrip() for _ in range(N)]

# 주어진 학생들의 학생 번호를 가장 뒷자리부터 k개씩 추려서 비교하여
# 모든 학생들의 번호를 서로 다르게 만들 수 있는 최소의 k를 찾는 함수입니다.
def min_k(students):
    n = len(students)
    k = 1
    while True:
        # [-k:]를 사용하여 가장 뒷자리부터 하나씩 추려서 정렬된 리스트를 생성합니다.
        li = sorted(student[-k:] for student in students)
        # 뒤자리부터 비교하여, 중복이 생길 경우 빠져나옵니다.
        # 반복문이 중간에 중단되지 않았다면 중복된 학생 번호가 없다는 뜻입니다.
        # K를 늘려 비교하는 뒤자리 수를 늘려 과정을 반복합니다.
        for i in range(1, n):
            if li[i] == li[i - 1]:    
                break
        else:
            return k
        k += 1
result = min_k(students)

print(result)

'코딩 연습 > 백준 코드' 카테고리의 다른 글

회사에 있는 사람-7785.py  (0) 2023.10.18
행운의 수-9575.py  (0) 2023.10.18
폴리오미노-1343.py  (0) 2023.10.18
팰린드롬수-1259.py  (0) 2023.10.18
팰린드롬수-1213.py  (0) 2023.10.18

+ Recent posts