치악산 복숭아

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

PS:0

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

Juliie 2020. 9. 16. 16:46

링크

programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr


문제 설명

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.


제한 사항

  • 두 수는 1이상 1000000이하의 자연수입니다.

문제 풀이

1) 코드 설명

 (1) n과 m중 더 큰 수를 num에 저장한다.

 (2) max와 min을 초기화한다.

 (3) n과 m이 같은 수로 나누어 떨어진다면 max 변수에 저장한다(최대공약수)

 (4) 최소공배수는 두 수의 곱 / 최소공배수를 하면 구할 수 있다(두 수의 곱 = 최소공배수 * 최대공약수)

 (5) answer에 max와 min을 저장한다.

 

2) 코드

function solution(n, m) {
  let answer = [];
  let num = n > m ? n : m;
  let max = -21470000;
  let min = 21470000;

  for (let i = 1; i <= num; i++) {
    if (n % i === 0 && m % i === 0)
      max = i;
  }
  min = n*m/max;
  answer = [max, min];
  return answer;
}
Comments