문제
풀이과정
- 최대공약수를 구하는 함수와 최소공배수를 구하는 함수를 선언한다.
- for문을 통해서 주어진 배열의 길이만큼 순회하면서 최소공배수를 구한다.
- for문을 순회하면서 구해진 answer의 최소공배수를 return 해준다.
코드
function solution(arr) {
//정렬이 안되있을 경우를 대비하여 오름차순으로 정렬해준다.
arr.sort((a,b) => a - b);
//최소공배수를 담을 변수
let answer = 0;
answer = lcm(arr[0], arr[1]);
//주어진 배열의 길이가 1일때는 그대로 그 배열의 원소를 리턴
if(arr.length === 1) return arr[0];
//주어진 배열의 길이가 2일때는 처음에 구해진 answer로 리턴
if(arr.length === 2) return answer;
for(let i = 2; i < arr.length; i ++) {
answer = lcm(answer, arr[i]);
}
return answer
}
//최대 공약수
function gcd(num1, num2) {
return (num1 % num2) === 0 ? num2 : gcd(num2, num1 % num2);
}
/최소 공배수
function lcm(num1, num2) {
return num1 * num2 / gcd(num1, num2);
}