프로그래머스 > 코딩테스트 > N개의 최소공배수

hyeonyohwan·2021년 4월 18일
0

바로 이전의 문제보다 조금 더 업그레이드된 문제이지만 사실 조금만 생각하면 난이도가 별 차이가 없다는 것을 알 수 있다.
(말은 이렇게 하지만 어떻게 풀어야 하나 막막하고 멘탈이 나갔었다... ㅋㅋㅋ
쓸데없이 복잡하게 생각하는 나의 두뇌야 반성하렴..... ㅠ)

function solution(arr) {
    var answer = 1;
    
    const gcd = (a,b) => a % b === 0 ? b : gcd(b, a % b);
    const lcm = (a,b) => a * b / gcd(a,b);
    
    for(var i = 0; i < arr.length; i++){
       answer = lcm(answer, arr[i]);
    }
    
    return answer;
}

최대공약수와 최소공배수를 구하는 식을 만들었으면 아래의 for문만 추가하면 된다.
게산할 때 아무 지장이 없는 1로 answer를 초기화해준 뒤, answer와 arr의 첫 번째 값씩 짝짓고 그 계산값과 두 번째 값씩 짝짓고 ..... 마지막 값까지 둘씩 짝지어 최소공배수를 구해주면 끝!!

참고 - https://ywpp.tistory.com/171

profile
웹 프론트엔드 개발자입니다.

0개의 댓글