문제
- 패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라.
풀이
- 0부터 하나씩 마디를 늘려가면서 특정 크기의 문자열 마디가 다음에 오는 같은 크기의 문자열 마디와 일치하는지 확인
T = int(input())
for t in range(1, T+1):
word = input()
result = 0
for i in range(1, len(word)):
if word[0:i] == word[i:i+i]:
result = i
break
print(f"#{t} {result}")
- 메모리 : 46,432 kb, 실행 시간 : 95 ms
T = int(input())
for t in range(1, T+1):
word = input()
result = 0
for i in range(1, len(word)):
if i + i > len(word):
break
elif word[0:i] == word[i:i+i]:
result = i
break
print(f"#{t} {result}")
- 메모리 : 42,660 kb, 실행 시간 : 88ms
- 마디를 2개 이상 만들 수 없는 경우 중단시킴