🗃️javascript/프로그래머스

최대공약수와 최소공배수(Lv.1)[]

하얀성 2023. 3. 22. 11:56

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function solution(n, m) {
    let a1; // 최대공약수
    let a2; // 최소공배수
    let max = Math.max(n, m)
    let min = Math.min(n, m)
    
    if(max % min === 0) { // 나누어 떨어진다면
        for(let i=1000000; i > 0; i--){
            if(max % i == 0 && min % i == 0){
                a1 = i
                break;
            }
        }
        a2 = max
    }if(max % min !== 0){ // 나누어 떨어지지 않는다면
        a1 = 1 // 둘 사이의 공통 배수 x
        a2 = n * m
    }
        
    return [a1,a2]
}
cs

솔직히 뭐가 문제인지 잘 모르겠다. 

나머지 테스트 케이스에서 막힌다.

 

테스트 1
입력값 3, 12
기댓값 [3, 12]
실행 결과 테스트를 통과하였습니다.
테스트 2
입력값 2, 5
기댓값 [1, 10]
실행 결과 테스트를 통과하였습니다.

찾아보니 유클리드 호제법으로 풀라하는데 그걸로 다시 접근해보면서 왜 틀렸는가도 생각해봐야겠다.