프로그래머스 N개의 최소공배수를 풀어보자

JD·2021년 12월 1일
0

제한사항

  • arr은 길이 1이상, 15이하인 배열
  • arr의 원소는 100 이하인 자연수

📢N개의 최소공배수

배열 속 숫자들의 최소공배수를 구하여라

📢풀이

  • 유클리드 호제법 함수euclid 작성(재귀함수)
  • 향상된 for문 사용하여 (결과*현재값)/euclid값 저장
  • answer가 0 으로 시작시 결과도 0 이기 때문에 1로시작
  • 결과값 반환

📢코드

function solution(arr) {   
    let answer = 1;
    
    const euclid = (a,b) => {
        if(b == 0)return a;
        return euclid(b,a%b)
    };
    
    for(const val of arr){
        answer = (answer * val)/euclid(answer,val);
    }
    
    return answer;
}

📢마치며

문제에서 사용할 공식이 감이 안잡혀서 친구에게 쉬운방법없냐고 물어보니까 유클리드 호제법 이용하면 된다 그래서 검색해봤다 근데 위키백과 이론 나오는거까진 좋은데 내리다가 알고리즘 코드를 봐버렸다.... 다음번 비슷한 문제 나오면 그때는 지금 푼거 기억해서 안보고 작성하고 싶다😭😭😭

📢출처

👍프로그래머스
👍위키백과

0개의 댓글