상세 컨텐츠

본문 제목

[SW Expert Academy] 15758. 무한 문자열| 구현 | 파이썬, 소스코드, 정답

Coding Test/문제풀이

by yooputer 2023. 5. 15. 08:49

본문

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

 

SW Expert Academy

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

swexpertacademy.com


문제 요약

  • 문자열 S에 대해 f(S)를 S를 무한히 반복해 얻은 문자열이라고 하자.
  • 두개의 문자열 S1, S2이 주어질 때 f(S1) == f(S2)이면 yes, 아니면 no를 출력하라

문제 조건

  • 문자열의 길이는 1보다 크거나 같고 50보다 작거나 같다.

시행착오

  • SW Expert Academy 플랫폼에서 처음 문제를 풀어봐서 결과를 출력할 때 테스트케이스 번호도 같이 출력해야하는지 몰랐다
  • 그래서 그거때문에 시간을 좀 버렸다 ^^;

접근방법

  • f(s)가 같기 위해서는 모든 i에 대하여 s[i%len(s)]가 같아야 한다.
  • 문자열의 길이가 최대 50이므로 넉넉히 i를 100까지 검사하였다. 

소스코드

T = int(input())

for test_case in range(1, T + 1):
    s1, s2 = input().split()
    for i in range(101):
        if s1[i%len(s1)] != s2[i%len(s2)]:
            print("#"+str(test_case)+ " no")
            break
    else:
        print("#"+str(test_case)+ " yes")

 

관련글 더보기