본문 바로가기

프로그래머스 - Lv.2 N개의 최소공배수 본문

개발/algorithm

프로그래머스 - Lv.2 N개의 최소공배수

자전하는명왕성 2023. 2. 26. 21:52

 

며칠 간 filter / some / map 등과 같은 배열함수와 이중 반복문으로 풀려다가 의외로 단순히 풀렸다.

2,6,8 의 최소공배수나, 12, 8의 최소공배수가 같다는 특징때문이었는데,

이 덕분에 이전에 사용해봤던 알고리즘으로 최소공배수를 구하는 유클리드 호제법을 콜백 함수로 활용했다.

 

function solution(arr) {
  function callback(n, m) { // 유클리드 호제법
  let a = n
  let b = m
  
  while (b !== 0){
    let temp = a%b
    a = b
    b = temp
  }
  return (n*m)/a
}
  
  let result = arr.reduce((a,c)=>{
    return callback(a,c) // 콜백
  },1)
  
  return result
}

 

Comments