[SWEA-d2]2007. 패턴 마디의 길이 - python

iamjinseo·2022년 10월 28일
0

문제풀이-Python

목록 보기
124/134
post-thumbnail

https://swexpertacademy.com/main/solvingProblem/solvingProblem.do

문제 설명

패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라.

[제약 사항]

각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다.

[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다.

[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

입력

3       
KOREAKOREAKOREAKOREAKOREAKOREA
SAMSUNGSAMSUNGSAMSUNGSAMSUNGSA
GALAXYGALAXYGALAXYGALAXYGALAXY   

출력

#1 5
#2 7
#3 6

풀이

for i in range(1, int(input())+1):
    strr  = input()
    ans = ""
    for l in strr:
        ans += l
        if ans[:len(ans)//2] == ans[len(ans)//2:]: #문자열을 하나씩 검사해서 덧붙일 때 절반이 같으면 패턴
            print(f'#{i} {len(ans)//2}'); break

입력받은 문자열에서 문자를 하나하나 붙여가면서 같은 패턴이 두 개 나왔을 때 검사를 끝내는 방식

if ans[:len(ans)//2] == ans[len(ans)//2:]: #문자열을 하나씩 검사해서 덧붙일 때 절반이 같으면 패턴

예를 들어 KOREAKOREA가 됐을 때 패턴은 KOREA이므로 KOREAKOREA의 절반 길이를 출력함

profile
일단 뭐라도 해보는 중

0개의 댓글