개발자 첫걸음/프로그래머스

[프로그래머스 level1] 최대공약수와 최소공배수

프로아마추어 2021. 10. 13. 00:07

처음에는 그냥 알고리즘을 직접 짜서 문제를 풀려고 했으나 테스트에서 어딘가 모르게 계속 실패가 발생했다.

인터넷 검색 후 유클리드 호제법이란 공식을 발견하게 되었고 소스에 바로 적용하니 쉽게 통과할 수 있었다.

 

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        answer[0] = cal(n, m);
        answer[1] = n*m/answer[0];
        return answer;
    }
    
    int cal(int n, int m){
        int temp = 0;
        while(m!=0) {
            temp = n;
            n = m;
            m = temp%n;
        }        
        return n;
    }
}