문제
https://school.programmers.co.kr/learn/courses/30/lessons/12953
접근 방법 및 풀이
최소 공배수는 유클리드 호제법을 이용하여 0번째 수와 1번째 수의 최소 공배수를 구한 후 최소 공배수와 2번째 수의 최소 공배수를 구하고 이를 반복하여 배열의 마지막 까지 최소 공배수를 구하여 반환
import java.util.Arrays;
public class Q30_12953 {
public int solution(int[] arr) {
Arrays.sort(arr);
int length = arr.length;
int lcm = arr[0];
for (int i = 1; i < length; i++) {
int gcd = getGCD(lcm, arr[i]);
lcm = lcm * arr[i] / gcd;
}
return lcm;
}
public int getGCD(int num1, int num2) {
if (num1 < num2) {
int num = num1;
num1 = num2;
num2 = num;
}
if (num1 % num2 == 0) {
return num2;
} else {
return getGCD(num2, num1 % num2);
}
}
}