https://school.programmers.co.kr/learn/courses/30/lessons/12953
arr[i+1] = (arr[i] * arr[i+1]) / getGCD(arr[i], arr[i+1])로 구함getGCD 함수는 유클리드 호제법을 사용하여 두 수의 최대공약수를 재귀적으로 구함import java.util.*;
class Solution {
public int solution(int[] arr) {
Arrays.sort(arr); // 배열을 오름차순 정렬
// 반복문을 통해 배열의 최소공배수를 구함
for (int i = 0; i < arr.length - 1; i++) {
// 두 수의 최대공약수 구하기
int gcd = getGCD(arr[i+1], arr[i]);
// 두 수의 최소공배수를 계산
arr[i+1] = (arr[i] * arr[i+1]) / gcd;
}
// 최종적으로 계산된 최소공배수를 반환
return arr[arr.length - 1];
}
// 유클리드 호제법을 사용하여 최대공약수(GCD) 구하는 함수
public static int getGCD(int n1, int n2) {
if (n1 % n2 == 0) {
return n2;
}
return getGCD(n2, n1 % n2);
}
}