[풀이]
from math import gcd #최소 공배수
def lcm(x):
pattern = int((len(s) / x) * (len(t) / x) * x)
S = pattern / len(s)
T = pattern / len(t)
S,T = int(S), int(T)
return S,T
s = input()
t = input()
#abcdef ab의 경우 1로 출력
if len(s) == len(t):
if s == t:
answer =1
else:
answer = 0
else:
x = gcd(len(s),len(t))
S,T = lcm(x)
fs = s * S
ft = t *T
if fs == ft:
answer = 1
else:
answer = 0
print(answer)
🤣처음에는 길이가 긴 애의 크기만큼 짧은애를 같게 만들어서 비교하는 걸로 했는데, 그러면 길이가 2 3 처럼 안된다. 즉, 두 문자열 모두 최소공배수만큼 길이를 만들어주고 비교하면 되는데 파이썬은 내장함수로 최소공배수가 없는 것 같다..? 그래서 결국 처음으로 gcd라는 내장함수를 이용해서 최대 공약수를 구하고 다시 길이로 나눠주고,, 몫만큼 곱해서 최소공배수를 만들어준다음에 비교하는 번거로운,,방법을 사용했다.
'너와!나의!알고!리즘! > 백준' 카테고리의 다른 글
[백준 #5427, Python] 불 (0) | 2021.04.06 |
---|---|
[백준 #12904,Python] A와B (0) | 2021.03.31 |
[백준 #13706, Python] 제곱근 (0) | 2021.03.30 |
[백준 #12907,Python] 동물원 (0) | 2021.03.30 |
[백준 #16953,Python] A->B (0) | 2021.03.30 |