본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Silver 5][Python] 12871번 : 무한 문자열

by 빛밤하늘 2021. 5. 5.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

12871번: 무한 문자열

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

www.acmicpc.net

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 첫째 줄에 s를 입력합니다.
s = input()
# 둘째 줄에 t를 입력합니다.
# 문자열 s, t의 길이는 50보다 작거나 같은 자연수이고,
# 알파벳 소문자로만 이루어져 있습니다.
t = input()

# 문자열 s의 길이를 저장하는 변수를 선언합니다.
s_length = len(s)
# 문자열 t의 길이를 저장하는 변수를 선언합니다.
t_length = len(t)

# 문자열 s에 문자열 t의 길이만큼 반복한 것과
# 문자열 t에 문자열 s의 길이만큼 반복한 것이 같다면
if s * t_length == t * s_length:
    # 1을 출력합니다.
    print(1)
# 문자열 s에 문자열 t의 길이만큼 반복한 것과
# 문자열 t에 문자열 s의 길이만큼 반복한 것이 같지 않다면
else:
    # 0을 출력합니다.
    print(0)

결과

 

위의 코드처럼 무작정 문자열들의 길이를 곱하는 것보다

두 문자열 s, t의 길이들의 최대공약수를 구해서 곱하는 것이 더 나은 방법인 것 같습니다.

실행 시간적으로도 더 빠른지 나중에 포스팅을 해봐야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글