[프로그래머스 lev2/JS] N개의 최소공배수

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
74/178

문제 출처

프로그래머스 lev2 - N개의 최소공배수

나의 풀이

다른 풀이

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);
    });
}
profile
https://medium.com/@wooleejaan

0개의 댓글