N개의 최소공배수 js

정하윤·2022년 11월 16일
0
function solution(arr) {
  let result;
  arr.sort((a, b) => {
    return b - a;
  }); //오름차순
  let n = 1;
  while (true) {
    let an = arr[0] * n; 
    if (arr.length === 1) { //길이가 1일때 바로답이나오도록 설정
      result = arr[0];
      break;
    }
    let count = 0;
    for (let i = 0; i < arr.length; i++) {
      if (an % arr[i] === 0) {
        count++; 
      }
    }
    if (count === arr.length) { 
      result = an;
      break;   // 나눠서 0이된값이 길이와 같을때 답 출력
    }
    n++;   //아닐시 최대값에 *할 숫자 증가
  }
  return result;
}

풀이과정: let an = arr[0] n; 에서 맨처음에는 an= arr[0] 으로 설정하고 맨 밑에 an++ 을하여 시간이 오래걸리는것 같아서 어떻게하면 더빨리 할수있을까 생각을 해보니 1,2,3,4이렇게 1씩 증가한 수를 곱하여도 된다는걸 알게되어 let an = arr[0] n을하고 밑에 n을 증가하게 만들었다.

0개의 댓글