class Solution {
public int solution(int[] arr) {
int answer = arr[0]; // 초기값을 배열의 첫 번째 숫자로 설정
// 배열의 숫자들과 answer의 최소공배수를 구하는 반복문
for (int i = 1; i < arr.length; i++) {
answer = lcm(answer, arr[i]); // answer와 현재 숫자의 최소공배수를 구해서 answer에 업데이트
}
return answer;
}
// 두 수의 최대공약수를 구하는 메소드
public int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 두 수의 최소공배수를 구하는 메소드
public int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
}
solution 함수 내에서 gcd와 lcm 메소드를 활용하여 최소공배수를 구합니다. gcd는 유클리드 호제법을 사용하여 최대공약수를 구하는 메소드이고, lcm은 최대공약수를 활용하여 최소공배수를 계산하는 메소드입니다. solution 함수는 배열의 첫 번째 숫자를 초기값으로 설정하고, 배열의 나머지 숫자들과의 최소공배수를 반복적으로 계산하여 최종적인 최소공배수를 반환합니다.