728x90
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
728x90
내 생각
테스트 케이스가 부족한 문제 같다.
처음 제출한 코드에 'samsamsungsamsamsungsamsamsung' 같은 문자열을 넣으면, 답이 10이 나와야 하는데 앞의 'samsam'까지만 확인하고 3을 출력하는 코드를 제출해도 Pass가 나온다.
문제의 댓글을 보다가 이런 케이스가 있을 수 있겠구나 알게 되어서 위 같은 경우 10을 출력할 수 있는 코드를 다시 짰다.
처음 제출한 코드(Pass 나오긴 함)
T = int(input())
for test_case in range(1, T + 1):
s = input()
for i in range(1, 11):
if s[:i] == s[i:i+i]:
print("#{} {}".format(test_case, i))
break
다시 짠 코드
T = int(input())
for test_case in range(1, T + 1):
s = input()
for i in range(1, 11):
if s[:i] == s[i:i+i]:
#위 마디가 반복하는게 맞는지 확인
is_repeat = True
for m in range(i, len(s)):
#반복하는게 맞다면 배수 자리에 항상 같은 문자열이 와야함.
if s[m % i] != s[m]:
is_repeat = False
break
if is_repeat:
print("#{} {}".format(test_case, i))
break
728x90
'Problem Solving > SWEA' 카테고리의 다른 글
[SW Expert Academy, SWEA 2001] 파리 퇴치 (python) (0) | 2022.09.05 |
---|---|
[SW Expert Academy, SWEA 2005] 파스칼의 삼각형 (python) (0) | 2022.09.05 |
[SW Expert Academy, SWEA 1926] 간단한 369게임 (python) (0) | 2022.09.03 |
[SW Expert Academy, SWEA 1859] 백만 장자 프로젝트 (python) (0) | 2022.09.03 |
[SW Expert Academy, SWEA 1940] 가랏! RC카! (python) (0) | 2022.05.09 |