- 유클리드 알고리즘 체크!
""" 1번: 나의 풀이 """
def gcd(a, b):
gcm = 1
for k in range(2, min(a, b) + 1):
while a % k == 0 and b % k == 0:
a //= k
b //= k
gcm *= k
return gcm
def lcm(a, b):
return a*b//gcd(a, b)
def solution(n, m):
g = gcd(n, m)
return [g, lcm(n, m, g)]
""" 2번: 다른 사람의 풀이 """
def gcdlcm(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
return [c, a*b//c]
def solution(n, m):
return gcdlcm(n, m)
'> 알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
lv1-[1차] 비밀지도 (python, 파이썬) (0) | 2020.10.24 |
---|---|
lv1-콜라츠 추측 (python, 파이썬) (0) | 2020.10.22 |
lv1-시저 암호 (python, 파이썬) (0) | 2020.10.22 |
lv1-3진법 뒤집기 (python, 파이썬) (0) | 2020.10.22 |
lv1-예산 (python, 파이썬) (0) | 2020.10.22 |
댓글