Hyundolog

[Programmers] Lv1. 최대공약수와 최소공배수 (JavaScript) 본문

문제 풀이/프로그래머스

[Programmers] Lv1. 최대공약수와 최소공배수 (JavaScript)

hyundol97 2022. 7. 29. 14:55

문제

 

 


 

 

풀이

1차

function solution(n, m) {
    let gcd, lcm;
    
    if(n > m) {
        for(let i = m; i > 0; i--) {
            if(n % i == 0 && m % i == 0) {
                gcd = i;
                break;
            }
        }
        
        for(let i = n; i <= n*m; i++) {
            if(i % n == 0 && i % m == 0) {
                lcm = i;
                break;
            }
        }
    } else {
        for(let i = n; i > 0; i--) {
            if(n % i == 0 && m % i == 0) {
                gcd = i;
                break;
            }
        }
        
        for(let i = m; i <= n*m; i++) {
            if(i % n == 0 && i % m == 0) {
                lcm = i;
                break;
            }
        }
    }
    
    return [gcd, lcm];
}

 

 

2차

function solution(n, m) {
    let min = Math.min(n, m);
    let gcd = 1;
    
    for(let i = min; i > 0; i--) {
        if(n % i == 0 && m % i == 0) {
            gcd = i;
            break;
        }
    }
    return [gcd, gcd * (n / gcd) * (m / gcd)];
}

 

 


 

리뷰

  • Math.min() 메소드 사용하여 코드 길이 단축
  • 최대공약수와 최소공약수 간의 연관성 이해 필요
Comments