[파이썬/python] 백준 - 1235 학생 번호

2025. 8. 4. 21:16·알고리즘
반응형

문제

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


문제 설명

  1.   학생들에게 고유한 학생 번호를 부여한다.
    1. 학생 번호는 0에서 9 사이의 숫자로 이루어진 문자열이다.
    2. 학생들의 고유 번호는 서로 다르지만 그 길이는 모두 같다.
  2. 학생들의 고유 번호가 주어졌을 때, 뒤에서 k자리만 추려서 남겨 놓았을 때 모든 학생들의 학생 번호를 서로 다르게 만들 수 있는 최소의 k를 구한다.

 


풀이

학생 번호들을 뒤에서부터  i개씩 파싱해서 서로 비교한다. 

set에 모든 학생번호를 넣고 set의 크기가 학생의 수와 동일할 때 i를 출력했다.

 

  1. 문자열의 길이만큼 역으로 반복한다.
  2. res에 현재 길이까지 슬라이싱 한 문자열을 넣는다.
  3. 길이가 N과 동일하다면 현재 길이를 출력한다.

코드

import sys
input = sys.stdin.readline

N = int(input())

std = [list(input().strip()) for _ in range(N)]

n = len(std[0])

for i in range(n-1,-1,-1):
    res = set()
    for j in range(N):
        res.add(''.join(std[j][i:]))
    if len(res) == N:
        print(n-i)
        exit()

시간복잡도

  • 최악의 경우 $O(N^2)$의 시간복잡도가 소요된다.
  • 따라서 시간복잡도는 $O(10^6)$
반응형

'알고리즘' 카테고리의 다른 글

[파이썬/python] 백준 - 2597 줄자접기  (0) 2025.08.06
[파이썬/python] 백준 - 1253 좋다  (2) 2025.08.05
[파이썬/python] 백준 - 17141 연구소 2  (3) 2025.08.03
[파이썬/python] 백준 - 28069 김밥천국의 계단  (2) 2025.08.02
[파이썬/python] 백준 - 17124 두 개의 배열  (3) 2025.08.01
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 - 2597 줄자접기
  • [파이썬/python] 백준 - 1253 좋다
  • [파이썬/python] 백준 - 17141 연구소 2
  • [파이썬/python] 백준 - 28069 김밥천국의 계단
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (162) N
      • SW 마에스트로 (0)
      • 알고리즘 (125) N
      • CS (13)
      • Java (6) N
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    컴퓨터 구조
    async
    OS
    JPA
    컴퓨터구조
    백준
    알고리즘
    Redis
    springboot
    인프런
    java
    completablefuture
    SMTP
    파이썬
    작심삼일 챌린지
    python
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 - 1235 학생 번호
상단으로

티스토리툴바