2Ju0
Ju0.log
2Ju0
전체 방문자
오늘
어제
  • 🐱‍🚀 모두보기 (32)
    • CS (18)
      • LLVM (11)
      • 운영체제 (1)
      • 보안 (3)
      • 프로그래밍언어 (0)
      • 데이터과학 (3)
    • PL (1)
      • Python (1)
      • JavaScript (0)
    • Algorithm (12)
      • Python (0)
      • Javascript (12)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
2Ju0

Ju0.log

[Programmers] N개의 최소공배수 - JavaScript
Algorithm/Javascript

[Programmers] N개의 최소공배수 - JavaScript

2023. 4. 28. 19:47

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

내 풀이

function getGCD(a, b) {
    let gcd = 1;
    
    if(a % b === 0) gcd = b;
    else if(b % a === 0) gcd = a;
    else{
        for(let i = 2; i <= Math.min(a, b); i++){
            if(a % i === 0 && b % i === 0) gcd = i;
        }
    }
    return gcd;
}

function solution(arr) {
    while(arr.length !== 1){
        let a = arr.shift();
        let b = arr.shift();
        let gcd = getGCD(a, b);
        
        if(gcd === 1) arr.push(a * b);
        else arr.push(a * b / gcd);
    }
    return arr.shift();
}

arr의 앞에서 부터 두 개씩 최소공배수를 구하는 방식으로 구현했다. 이때, 최소공배수는 두 수의 최대공약수를 활용하여 구하도록 했다. 소인수분해를 생각하면 쉽다.

저작자표시 비영리 변경금지 (새창열림)
    'Algorithm/Javascript' 카테고리의 다른 글
    • [Programmers] 기능개발 - JavaScript
    • [Programmers] 점프와 순간 이동 - JavaScript
    • [Programmers] 캐시 - JavaScript
    • [Programmers] H-Index - JavaScript
    2Ju0
    2Ju0

    티스토리툴바