본문 바로가기
JavaScript

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

by 어느새벽 2024. 10. 24.
function solution(a, b) {
  // 최대공약수를 구하는 함수 (유클리드 호제법 사용)
  function gcd(a, b) {
    while (b !== 0) {
      let temp = b;
      b = a % b;
      a = temp;
    }
    return a;
  }
  
  // 최소공배수를 구하는 공식: a * b / gcd(a, b)
  let gcdValue = gcd(a, b);
  let lcmValue = (a * b) / gcdValue;
  
  // 배열로 최대공약수와 최소공배수를 반환
  return [gcdValue, lcmValue];
}

 

유클리드 호제법 단계

  1. 두 수 중 큰 수를 작은 수로 나눈 나머지를 구합니다.
  2. 작은 수와 나머지로 다시 나눔을 반복합니다.
  3. 나머지가 0이 되면, 그때의 작은 수가 최대공약수입니다.