설명
반복되는 마디의 길이를 출력한다. 문자열의 길이는 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
👩💻 회고
그다지 썩 좋은 문제는 아닌 것다. 문제가 명확하게 명시되어 있지도 않고 허점이 많다.
'SWEA' 카테고리의 다른 글
[SWEA] 5162. 두가지 빵의 딜레마 (Python/D2) (2) | 2023.11.19 |
---|---|
[SWEA] 4466. 최대 성적표 만들기 (Python/D2) (1) | 2023.11.19 |
[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten (Python/D3) (0) | 2023.11.19 |
[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View (Python/D3) (0) | 2023.11.16 |
[SWEA] 5431. 민석이의 과제 체크하기 (Python/D3) (2) | 2023.11.16 |