문제
패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라.
[제약 사항]
각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다.
접근방식
입력되는 문자열을 words 변수에 받음
그리고 문자열을 한 문자씩 자르기 위해 list(words)를 listed_words라는 변수에 할당
빈 배열 arr를 선언해주고 listed_words길이만큼 j를 인자로 for문을 돌면서 j번째 문자가 arr에 없으면 arr에 할당해줌
만약 문자가 있으면 해당 문자가 문자열 반복이 끝나고 나오는 문자열의 첫 번째 문자인지 확인하는 과정이 필요함
현재 인자가 j일 때 arr[0:j]까지의 문자열과 arr[j:j+j]의 문자열이 같다면 arr[0:j]가 반복되는 문자열이므로 arr의 길이만큼 출력해줌
만약 아니면 반복되는 문자열이 아니므로 해당 인자값을 인덱스로 arr에 할당해줌
코드
T = int(input())
for i in range(1, T+1):
words = str(input())
listed_words = list(words)
arr = []
for j in range(len(listed_words)):
if listed_words[j] not in arr:
arr.append(listed_words[j])
else:
if arr[0:j] == listed_words[j: j+j]:
print('#'+str(i), len(arr))
else:
arr.append(listed_words[j])
'CodingTest' 카테고리의 다른 글
SWEA - 두 개의 숫자열(1959) (0) | 2023.10.25 |
---|---|
Programmers - 성격 유형 검사하기 (0) | 2023.10.24 |
코딩테스트 준비 - 파이썬 문법 정리 (0) | 2023.10.22 |
코딩테스트 준비 - 알고리즘 성능 평가 (0) | 2023.10.21 |
SWEA - 스도쿠 검증(1974) (1) | 2023.10.21 |