바로 이전의 문제보다 조금 더 업그레이드된 문제이지만 사실 조금만 생각하면 난이도가 별 차이가 없다는 것을 알 수 있다.
(말은 이렇게 하지만 어떻게 풀어야 하나 막막하고 멘탈이 나갔었다... ㅋㅋㅋ
쓸데없이 복잡하게 생각하는 나의 두뇌야 반성하렴..... ㅠ)
function solution(arr) {
var answer = 1;
const gcd = (a,b) => a % b === 0 ? b : gcd(b, a % b);
const lcm = (a,b) => a * b / gcd(a,b);
for(var i = 0; i < arr.length; i++){
answer = lcm(answer, arr[i]);
}
return answer;
}
최대공약수와 최소공배수를 구하는 식을 만들었으면 아래의 for문만 추가하면 된다.
게산할 때 아무 지장이 없는 1로 answer를 초기화해준 뒤, answer와 arr의 첫 번째 값씩 짝짓고 그 계산값과 두 번째 값씩 짝짓고 ..... 마지막 값까지 둘씩 짝지어 최소공배수를 구해주면 끝!!