본문 바로가기

코딩테스트/Python

[프로그래머스] 최대공약수와 최소공배수

오랜만에 풀어본다,, 유클리드 호제법은 항상,, 까먹는다ㅠㅠㅠ 반성하자..휴

 

유클리드 호제법을 인터넷에서 검색후.. 풀었다..!

 

내 코드

def solution(n, m):
    answer = []
    a = max(n,m)
    b = min(n,m)
    
    while b!=0:
        r = a%b
        a = b
        b = r
    answer = [a,n*m//a]
    return answer

 

다른사람 코드

def gcdlcm(a, b):
    c, d = max(a, b), min(a, b)
    t = 1
    while t > 0:
        t = c % d
        c, d = d, t
    answer = [c, int(a*b/c)]

    return answer

비슷한데 c,d = d,t 이렇게 한줄로 표현하셨다!! 알아도 써먹질 못하네..휴