[프로그래머스] 유클리드 호제법

재오·2023년 4월 8일
2

코딩테스트

목록 보기
17/46
post-thumbnail

유클리드 호제법을 이용하여 최대공약수 최소공배수를 구해보자.

function solution(n, m) {
    const gcd = (a,b) => a%b === 0 ? b : gcd(b,a%b);
    const lcm = (a,b) => a*b / gcd(a,b);
    return [gcd(n,m), lcm(n,m)];
}

최소공배수는 최대공약수의 값으로 인자 2개 곱한 값을 나눠주기만 하면 된다. 따라서 코드가 어렵지는 않다. 하지만 최대공약수 코드는 외우는 것이 좋다고 본다...
a를 b로 나눈 나머지 값이 0이면 b가 최대공약수가 되는 것이고, 그것이 아니라면 재귀함수로 인자를 b와 a%b한 값으로 호출하면 된다.
간단하지만 외우면 두고두고 많이 쓰일 알고리즘이다.

profile
블로그 이전했습니다

0개의 댓글