(Python, Java) 프로그래머스 - N개의 최소공배수
in Algorithm on Programmers, Level2
[문제 링크]
Python 풀이
import math
def solution(arr):
answer = arr[0]
for unit in arr[1:]:
gcd = math.gcd(answer, unit)
answer = answer * unit // gcd
return answer
프로그래머스에서 lcm을 지원하지 않는다. 따라서 gcd를 사용해서 구해야 한다.
최소 공배수는 두 수의 곱에다가 최대공약수를 나눈 수이다.
Java
import java.math.BigInteger;
class Solution {
public int solution(int[] arr) {
int answer = arr[0];
for (int idx = 1; idx < arr.length; idx++) {
BigInteger gcd = BigInteger.valueOf(answer).gcd(BigInteger.valueOf(arr[idx]));
answer = (arr[idx] * answer) / gcd.intValue();
}
return answer;
}
}