Stay Hungry Stay Foolish

SWEA

[SWEA] 2007. 패턴 마디의 길이 (Python/D2)

dev스카이 2023. 11. 19. 01:39
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


설명

반복되는 마디의 길이를 출력한다. 문자열의 길이는 30이고, 마디의 최대 길이는 10이다.

 

풀이

현재 문자와 같은 문자가 나오면 현재 문자부터 같은 문자가 나온 이전 위치까지와, 같은 문자가 나온 이후부터 2배 길이까지를 비교하여 같으면 단어의 길이를 저장한다. 

 

Solution

t = int(input())
for tc in range(1, t+1):
    word = input()
    ans = 0
    for i in range(len(word)):
        for j in range(i+1, len(word)):
            if word[i] == word[j]:
                if word[i:j-1] == word[j:2*j]:
                    ans = len(word[i:j-1])+1 #+1을 해준 이유는 i가 0부터라서
    print('#'+str(tc), ans)

 

다른 풀이

T = int(input())
for test_case in range(1, T + 1):
    s=input()
    for j in range(1,10):
        if s[:j]==s[j:2*j]:
            print(f'#{test_case} {j}')
            break

👩‍💻 회고

그다지 썩 좋은 문제는 아닌 것다. 문제가 명확하게 명시되어 있지도 않고 허점이 많다.