a는 누적값, b는 현재 요소의 값
초기값을 설정하지 않으면 a는 첫번째 요소의 값, b는 두번째 요소의 값
function solution(arr) {
let answer=1;
function gcd (a,b) {
while (b > 0) {
let tmp = b;
b = a % b;
a = tmp;
}
return a;
}
function lcm (a,b) {
return (a*b)/gcd(a,b);
}
for (let i=0; i<arr.length; i++) {
answer = lcm(answer, arr[i]);
}
return answer;
}
console.log(solution([2, 6, 8, 14]));
reduce 메서드
function getGcd(a, b) {
if (b === 0) return a;
return getGcd(b, a % b);
}
function solution(arr) {
return arr.reduce((a, b) => (a * b) / getGcd(a, b));
}
min % max
function solution(arr) {
return arr.reduce((acc, cur) => {
const recursive = (min, max) =>{
return (min % max) === 0 ? max : recursive(max, min % max);
}
let max = 0;
return acc*cur / recursive(acc,cur);
});
}