기록공간

최대공약수와 최소공배수 (프로그래머스) - Java 본문

Algorithm/문제

최대공약수와 최소공배수 (프로그래머스) - Java

입코딩 2020. 8. 22. 20:26
반응형

해결 방법 

최대공약수(gcd)는 유클리드 알고리즘을 사용하여 풀었다.

 

유클리드 알고리즘 (gcd, 최대공약수)

유클리드 알고리즘이란? 유클리드 알고리즘은 주어진 두 수 사이에 존재하는 최대공약수(gcd)를 구하는 알고리즘이다. 원리 유클리드 알고리즘은 다음과 같은 원리로 동작한다. 임의의 두 자연��

lipcoder.tistory.com

최소공배수(lcm)는 두 수의 배수 중에서 가장 작은 값 이므로, 두 수를 곱한 부분에 최대 공약수를 나누어 준 값이 최소공배수가 된다. 

 

코드 구현은 다음과 같다.

class Solution { 
    private int gcd(int a, int b) {
        int c;
        
        while(b != 0) {
            c = a % b;
            a = b;
            b = c;
        }
        return a;
    }
    
    private int lcm(int a, int b) {
        return a * b / gcd(a, b);
    }
    
    public int[] solution(int n, int m) {
        int[] answer = {gcd(n, m), lcm(n, m)};
        return answer;
    }
}
반응형
Comments