https://programmers.co.kr/learn/courses/30/lessons/12953
function solution(arr) {
var answer = 0;
arr.sort((a,b)=>b-a);
function getLcm (m,n){
function getGcd (m,n){
if(n === 0){
return m;
}else{
return getGcd(n, m%n);
}
}
var gcd = getGcd(m,n);
var lcm = m*n/gcd;
return lcm;
}
var first = arr[0];
var second = arr[1];
var currentLcm = getLcm(first, second);
var newLcm = currentLcm;
for(var i=2; i<arr.length; i++){
newLcm = getLcm(currentLcm, arr[i]);
currentLcm=newLcm;
}
if(arr.length === 1){
answer = arr[0];
}else {
answer = newLcm;
}
return answer;
}
쉽게 생각했는데.. 바로 안풀림
1. 처음 => 가장 작은 두 수의 gcd를 구해서 최소공배수를 구하려 함. => 오류 존재. 여러 수들의 최소공배수는 서로소끼리 남을 때까지 공약수를 구함..
2.질문하기-> 테스트케이스 [14,2,7]을 보고 1번 방법이 틀림을 알고, 두 수간의 lcm값을 차례로 새로운 입력값으로 해서 다음 수와의 lcm구함.