알고리즘
[백준 1235] 학생 번호 - 파이썬
Codult
2024. 2. 23. 11:27
728x90
백준 1235 - 학생 번호

* 풀이 과정
1) 문자열을 입력받는다.
2) 문자열을 자르는 기준이 되는 값(l) 설정한다. (l은 문자열의 가장 끝 인덱스부터 시작)
3) 반복문을 이용하여, 문자열 자르기[l:] 후, 자른 문자열끼리 비교.
* 나는 자른 문자열을 비교할 때도, for문을 써서 복잡해졌는데, if __ in [ ] 를 활용하면, for문 없이 비교할 수 있다.
4) 같은 문자열이 있다면, break -> l++
5) 같은 문자열이 전혀 없다면, break -> 문자열 길이와 l의 차이를 출력한다.
N = int(input())
nums = []
for _ in range(N):
nums.append(input())
length = len(nums[0])
result = 0
# l을 기준으로 자른 문자열 비교까지 for문으로 진행한 코드
# for l in range(length-1, -1, -1):
# for i in range(N-1):
# num_i = nums[i][l:]
# for j in range(i+1, N):
# num_j = nums[j][l:]
# if num_i == num_j:
# result = length - l
# break
# if result != length - l: break
# if __ in []: 을 이용하면, for문 2개로 가능.
for l in range(length-1, -1, -1):
arr = []
for num in nums:
if num[l:] in arr: break
else: arr.append(num[l:])
if len(arr) == N:
print(length - l)
break728x90