[ BOJ / Python ] 1235번 학생 번호

황승환·2022년 3월 8일
0

Python

목록 보기
233/498


이번 문제는 문자열 처리가 관건이었다. 학생의 번호를 입력받고, 1부터 번호의 길이까지 1씩 늘려가며 학생들의 번호[-1:]의 중복 여부를 확인하고, 만약 중복이 없는 경우가 발생하면 바로 해당 번호의 길이를 출력하고 종료되도록 작성하였다.

  • n을 입력받는다.
  • 학생 번호를 입력받을 리스트 nums를 선언한다.
  • n번 반복하며 nums를 입력받는다.
  • 1부터 nums[0]의 길이까지 반복하는 i에 대한 for문을 돌린다.
    -> 길이가 i인 번호를 담을 리스트 results를 선언한다.
    -> n번 반복하는 j에 대한 for문을 돌린다.
    --> 만약 nums[j][-i:]가 results에 있을 경우,
    ---> 반복을 종료한다.
    --> 그 외의 경우,
    ---> nums[j][-i:]를 results에 넣는다.
    -> 만약 results의 길이가 n과 같을 경우,
    --> i를 출력하고 반복문을 종료한다.

Code

n=int(input())
nums=[]
for _ in range(n):
    nums.append(str(input()))
for i in range(1, len(nums[0])+1):
    results=[]
    for j in range(n):
        if nums[j][-i:] in results:
            break
        else:
            results.append(nums[j][-i:])
    if len(results)==n:
        print(i)
        break

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글