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

SSO·2020년 2월 13일
0

프로그래머스 Lv2

목록 보기
33/46

문제

https://programmers.co.kr/learn/courses/30/lessons/12953

풀이

function solution(arr) {
    var answer = 0;
    arr.sort((a,b)=>b-a);  

    function getLcm (m,n){
        function getGcd (m,n){
            if(n === 0){
                return m;
            }else{
                return getGcd(n, m%n);
            }
        }   
        var gcd = getGcd(m,n);
        var lcm = m*n/gcd;
 
        return lcm;
    }
  
    var first = arr[0];
    var second = arr[1];
    var currentLcm = getLcm(first, second);
    var newLcm = currentLcm;

    for(var i=2; i<arr.length; i++){

       newLcm = getLcm(currentLcm, arr[i]);
       currentLcm=newLcm;
   }   

    if(arr.length === 1){
      answer = arr[0];
    }else {
      answer = newLcm;
    }

    return answer;
}

더 생각해보기

쉽게 생각했는데.. 바로 안풀림
1. 처음 => 가장 작은 두 수의 gcd를 구해서 최소공배수를 구하려 함. => 오류 존재. 여러 수들의 최소공배수는 서로소끼리 남을 때까지 공약수를 구함..
2.질문하기-> 테스트케이스 [14,2,7]을 보고 1번 방법이 틀림을 알고, 두 수간의 lcm값을 차례로 새로운 입력값으로 해서 다음 수와의 lcm구함.

참고사항

profile
happy

0개의 댓글