728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12940?language=javascript
코드
function solution(n, m) {
const biggest = (a, b) => {
if (b === 0) return a;
return biggest(b, a % b); //재귀
};
const minimum = (a, b) => {
return (a * b) / biggest(a, b);
};
return [biggest(n, m), minimum(n, m)];
}
후기
- 우선 이 문제를 풀기 위해서는 유클리드 호제법에 대해 알아야 했다 (그래야 최대공약수를 구할 수 있다)
- 최소공배수는 유클리드 호제법을 통해 얻은 두 수의 최대공약수를 통해 (a * b) / a, b의 최대공약수 를 통해 쉽게 얻을 수 있었다
- 유클리드 호제법을 이해하는 데 살짝 시간이 걸렸지만 직접 쓰면서 하나하나 이해하고나니 쉬웠다
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 문자열 다루기 기본 / JavaScript (0) | 2022.01.20 |
---|---|
[Programmers] 제일 작은 수 제거하기 / JavaScript (0) | 2022.01.20 |
[Programmers] 행렬의 덧셈 / JavaScript (0) | 2022.01.20 |
[Programmers] 하샤드 수 / JavaScript (0) | 2022.01.20 |
[Programmers] 핸드폰 번호 가리기 / JavaScript (0) | 2022.01.20 |