문제요약
나의 코드 및 설명
- 두 수의 최소공배수는 [두 수의 곱 / 최대공약수] 이다.
- 따라서 최대공약수를 먼저 구하면 되는데 유클리드 호제법을 활용해서 구현하면 된다.
// cf) 최대공약수를 구하는 코드
function getGcd(a, b) {
if (b == 0) return a;
return getGcd(b, a%b);
}
function solution(arr) {
var answer = 0;
var gcd = arr.reduce((a,b) => getGcd(a,b));
console.log(gcd); // 최대공약수가 출력됨
answer = arr.redce((a,b) => (a*b) / getGcd(a,b));
console.log(answer); // 최소공배수가 출력됨
return answer;
}
피드백
유클리드 호제법을 활용하여 최대공약수를 구하고, 최소공배수는 두 수의 곱에서 최대공약수를 나눈 값이라는 것을 활용하여 문제를 해결할 수 있었다. 자바스크립트의 reduce()함수는 참 편하고 재밌는 것 같다.
'Programmers > Lv2' 카테고리의 다른 글
[프로그래머스/JS] 다음 큰 숫자 (Lv2) / num.toString() (0) | 2023.08.05 |
---|---|
[프로그래머스/JS] 귤 고르기 (Lv2) (0) | 2023.08.04 |
[프로그래머스/JS] 멀리 뛰기 (Lv2) / DP (0) | 2023.08.04 |
[프로그래머스/JS] JadenCase 문자열 만들기 (Lv2) (0) | 2023.08.04 |
[프로그래머스/JS] 올바른 괄호 (Lv2) (0) | 2023.08.04 |