Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- 리액트 훅
- 내일배움캠프
- 타입스크립트 props
- 파이썬 딕셔너리
- 파이썬 enumerate
- 파이썬 for
- 파이썬 slice
- REACT
- 리액트 공식문서
- React Hooks
- 파이썬 replace
- 타입스크립트
- 리액트
- JavaScript
- tanstack query
- 내일배움캠프 프로젝트
- 파이썬 반복문
- 내배캠 프로젝트
- 내일배움캠프 최종 프로젝트
- useState
- 파이썬 for in
- 타입스크립트 리액트
- typeScript
- 코딩테스트
- Next 팀 프로젝트
- 한글 공부 사이트
- 자바스크립트
- useEffect
- 리액트 프로젝트
Archives
- Today
- Total
sohyeon kim
[Python] 백준 : 학생 번호 1235, for in, strip() 본문
728x90
📝 문제
이번에는 학생들을 더욱 효율적으로 관리하기 위해 학생마다 고유한 학생 번호를 부여하기로 하였다. 학생 번호는 0부터 9 사이의 숫자로 이루어진 문자열로, 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같다.
학생들의 번호를 부여해 놓고 보니, 김진영 조교는 어쩌면 번호가 지나치게 긴 것은 아닌가 싶은 생각이 들었다. 예를 들어 아래와 같은 7자리의 학생 번호를 보자.
오민식 | 1212345 |
김형택 | 1212356 |
이동호 | 0033445 |
이처럼 학생 번호를 굳이 7자리로 하지 않고, 뒤에서 세 자리만을 추려서 남겨 놓아도 모든 학생들의 학생 번호를 서로 다르게 만들 수 있다.
오민식 | 345 |
김형택 | 356 |
이동호 | 445 |
하지만 세 자리보다 적게 남겨 놓아서는 모든 학생들의 학생 번호를 서로 다르게 만들 수 없다.
학생들의 번호가 주어 졌을 때, 뒤에서 k자리만을 추려서 남겨 놓았을 때 모든 학생들의 학생 번호를 서로 다르게 만들 수 있는 최소의 k를 구하는 프로그램을 작성하시오.
🧞♂️ 풀이
import sys
sys.stdin = open('input.txt', 'r')
# input = sys.stdin.readline
N = int(input())
nums = [input().strip() for _ in range(N)]
for i in range(1, len(nums[0]) + 1):
lst = []
for j in range(N):
if nums[j][-i:] in lst:
break
else:
lst.append(nums[j][-i:])
if len(lst) == N:
print(i)
break
나는 문제 그대로 각 숫자들을 뒤부터 slice 해 count 를 올려 비교해가고,
서로 다 다른 숫자라면 print 하려 했지만, 모든 숫자를 같은 자릿수로 비교할 필요가 없었다.
🔗 https://www.acmicpc.net/problem/1235
728x90
반응형
'Coding Test' 카테고리의 다른 글
[Python] 백준 : 질문은 계속돼 32194, 누적합, prefix (0) | 2024.12.17 |
---|---|
[Python] 백준 : 방 번호 1475, dict, list (1) | 2024.12.11 |
[Python] 백준 : 수학은 비대면강의입니다 19532, 브루트 포스, 연립방정식, for (0) | 2024.11.23 |
[Python] 백준 : 오등큰수 17299, stack, 스택, dict, counter (1) | 2024.10.31 |
[Python] 백준 : 오큰수 17298, stack, 스택 (0) | 2024.10.30 |