728x90
728x90
문제
패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라.
제약 사항
각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다.
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다.
출력
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
예제
[입력] | [출력] |
3 KOREAKOREAKOREAKOREAKOREAKOREA SAMSUNGSAMSUNGSAMSUNGSAMSUNGSA GALAXYGALAXYGALAXYGALAXYGALAXY |
#1 5 #2 7 #3 6 |
문제 해결 방법
- 파이썬의 슬라이싱 기능을 이용하여 간단하게 풀 수 있었던 문제였다.
- 패턴의 길이를 1부터 최댓값(@10@)까지 하나씩 늘려가면서, @S[:pattern_length] == S[pattern_length:pattern_length * 2]@일 때 반복문을 중단하고, 그 때의 패턴의 길이를 출력해주면 된다.
코드
T = int(input())
for test_case in range(1, 1 + T):
S = str(input())
pattern_length_limit = 10 # 마디의 최대 길이는 10
answer = 0
for pattern_length in range(1, pattern_length_limit + 1):
pattern = S[:pattern_length]
if pattern == S[pattern_length:pattern_length * 2]:
answer = len(pattern)
break
print(f"#{test_case} {answer}")
참고
- 난이도 : D2
728x90
728x90
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA-1974][Python] 스도쿠 검증 (0) | 2023.10.16 |
---|---|
[SWEA-1979][Python] 어디에 단어가 들어갈 수 있을까 (1) | 2023.10.14 |
[SWEA-1983][Python] 조교의 성적 매기기 (0) | 2023.10.12 |
[SWEA-1989] 초심자의 회문 검사 (1) | 2023.10.12 |
[SWEA-2001][Python] 파리 퇴치 (0) | 2023.10.12 |
[SWEA-2005][Python] 파스칼의 삼각형 (0) | 2023.10.12 |
[SWEA-1859][Python] 백만 장자 프로젝트 (1) | 2023.10.10 |
[SWEA-2070][Python] 큰 놈, 작은 놈, 같은 놈 (2) | 2023.10.08 |