알고리즘/프로그래머스

[2단계] N개의 최소공배수

hongeeii 2023. 12. 19. 12:40
728x90
반응형

 

class Solution {

     public int solution(int[] arr) {
        int answer = 1;

        for(int i = arr.length-1;i>=0;i--) {
            if(answer % arr[i] != 0) {
                answer = getLCM(answer, arr[i]);
            }
        }

        return answer;
    }

    /**
     * 최소 공배수
     * 
     * @param a
     * @param b
     * @return
     */
    private int getLCM(int a, int b) {
        return (a * b) / getGCD(a, b);
    }

    /**
     * 최대공약수
     * 
     * @param a
     * @param b
     * @return
     */
    private int getGCD(int a, int b) {
        int r = a % b;

        if (r == 0)
            return b;

        return getGCD(b, r);
    }
}
728x90
반응형