반응형
밑의 링크는 백준에서의 문제 링크입니다.
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의 길이들의 최대공약수를 구해서 곱하는 것이 더 나은 방법인 것 같습니다.
실행 시간적으로도 더 빠른지 나중에 포스팅을 해봐야겠습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글