[프로그래머스] N개의 최소공배수(Java, 자바)

giggle·2023년 8월 10일
0
post-custom-banner

문제

N개의 최소공배수


📌 아이디어

해당 문제는 주어진 배열의 최소공배수를 구해 문제를 해결할 수 있습니다.

최소공배수는 (n1 * n2) / n1과 n2의 최소공약수 공식으로 쉽게 구할 수 있습니다. 이때 최소공약수는 유클리드 호제법을 활용해 도출했습니다.

	// 최대 공약수 구하기
    
    public static int getGCD(int n1, int n2) {
        if  (n1 % n2 == 0) {
            return n2;
        }
        return getGCD(n2, n1%n2);
    }

위와 같이 구한 최대공약수를 활용해 탐색하며 마주하는 두 정수에 대해 최소공배수를 도출합니다.
처음 배열을 오름차순으로 정렬했기 때문에 배열 마지막에 할당된 최소공배수를 정답 처리합니다.


📌 코드

import java.util.*;

class Solution {
    public int solution(int[] arr) {
        Arrays.sort(arr);
        // 최소 공배수 
        for (int i=0; i<arr.length-1; i++) {
            int num = getGCD(arr[i+1], arr[i]);
            arr[i+1] = (arr[i] * arr[i+1]) / num;
            
        }
        return arr[arr.length-1];
    }
    // 최대 공약수 구하기
    public static int getGCD(int n1, int n2) {
        if  (n1 % n2 == 0) {
            return n2;
        }
        return getGCD(n2, n1%n2);
    }
}

피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.
post-custom-banner

0개의 댓글