최대공약수와 최소공배수

hyuri·2023년 9월 18일
0

코딩테스트 연습

목록 보기
25/70

내가 작성한 답

function solution(n, m) {
    let answer = [];
    let number = 0;
    for (let i = 0; i<Math.max(n,m); i++){
        if(Math.min(n,m) % i == 0 && Math.max(n,m) % i == 0){
            number = i;
        }
    }
    answer = [number, n*m / number];
    console.log(answer);
    return answer;
}
// 루프를 돌면서 중복계산이 발생하여 시간이 비교적 많이 소요됨. 또한 코드 길이도 깔끔한 답에 비해서 길어서 가독성이 떨어짐.

깔끔한 답

function gcdlcm(a, b) {
    var r;
    for(var ab= a*b;r = a % b;a = b, b = r){}
    return [b, ab/b];
}

// 유클리드 호재법을 사용하여 최대 공약수를 계산했음.

해석

r이 0이 될 때까지 반복함.

profile
개발자가 되고 싶은 지망생

0개의 댓글