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 |