ALGORITHM

[JAVA] [프로그래머스] Level 1 - 연습문제 - 최대공약수와 최소공배수

printf100 2020. 9. 23. 16:54

programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

 

 

 

 

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        int a = n;
        int b = m;
        
        // 최대공약수 (유클리드 호제법)
        while(b > 0) {
            int tmp = b;
            b = a % b;
            a = tmp;
        }
        
        answer[0] = a;
        
        // 최소공배수
        answer[1] = n * m / a;
        
        return answer;
    }
}