본문 바로가기
ⓒⓞⓓⓘⓝⓖⓣⓔⓢⓣ/ⓟⓨⓣⓗⓞⓝ

[SW expert / 파이썬] 무한 문자열

by heaven00 2023. 5. 17.
728x90

 

문제 (+ 출처):

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

 

SW Expert Academy

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

swexpertacademy.com

 

해당 문제는 백준에 '무한 문자열'과 굉장히 유사합니다.

https://www.acmicpc.net/problem/12871

 

12871번: 무한 문자열

첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다. 

www.acmicpc.net

 

 

👩‍💻 정답코드

t = int(input())
for i in range(1,t+1):
    a, b = map(str, input().split())
    a_len = len(a)
    b_len = len(b)
    
    if a * b_len == b * a_len:
        print(f'#{i}', 'yes')
    else:
        print(f'#{i}', 'no')

 

a, b에 대하여 같은 길이의 문자열을 만든 다음, 해당 문자가 같은지 비교해주면 됩니다

 

 

🤦‍♀️ 오답 코드

t = int(input())
for i in range(1,t+1):
    a, b = map(str, input().split())
    if len(a) > len(b):
        b = b + b[0:len(a)-len(b)]

    if a == b:
        print(f'#{i}', 'yes')
    else:
        print(f'#{i}', 'no')

 

 

해당 방법으로 풀이하니 80개의 테스트 케이스 중 58개가 맞았습니다

'abca' 'abc' 등으로 들어오는 몇몇개의 테스트 케이스가 틀렸던 거 같습니다!

 

 

이런 문제 나오면 꼭 a, b 길이의 최대공약수만큼 곱해주는게 올바른 풀이 방법인 것 같습니다!-!

 

728x90

댓글