๋ฌธ์ ๐ฝ
https://school.programmers.co.kr/learn/courses/30/lessons/12953
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ค๋ฅธ์ฌ๋ ํ์ด ๐ฝ
// ๋ฌธ์ ๊ฐ ๊ฐํธ๋์์ต๋๋ค. ์ด๋ก ์ธํด ํจ์ ๊ตฌ์ฑ์ด๋ ํ
์คํธ์ผ์ด์ค๊ฐ ๋ณ๊ฒฝ๋์ด, ๊ณผ๊ฑฐ์ ์ฝ๋๋ ๋์ํ์ง ์์ ์ ์์ต๋๋ค.
// ์๋ก์ด ํจ์ ๊ตฌ์ฑ์ ์ ์ฉํ๋ ค๋ฉด [์ฝ๋ ์ด๊ธฐํ] ๋ฒํผ์ ๋๋ฅด์ธ์. ๋จ, [์ฝ๋ ์ด๊ธฐํ] ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ฑ ์ค์ธ ์ฝ๋๋ ์ฌ๋ผ์ง๋๋ค.
function nlcm(num) {
return num.reduce((a,b) => a*b / gcd(a,b))
}
function gcd(a, b) {
return a % b ? gcd(b, a%b) : b
}
๋ดํ์ด๐ฝ
1. ์ฑ๊ณต โญ
function solution(arr) {
let answer = 0;
let maxNumber = Math.max(...arr);
let round=0;
while(answer===0){
++round;
let leastCommonMultiple =maxNumber*round
let array = arr.filter((num)=>{
return leastCommonMultiple%num===0
})
if(array.length==arr.length){
answer = leastCommonMultiple
break;
}
}
return answer;
}
๋๋์ ๐ฝ
์ฃผ์ด์ง N๊ฐ์ ์ ์ค ๊ฐ์ฅํฐ ์์ ๋ฐฐ์์ค์ ์ต๋ ๊ณต์ฝ์๊ฐ ์์์ ์ฐฉ์ํ์ฌ ํ์ดํ์๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ ์ต๋ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํํ ํ์ด๋ฅผ ์งํํ ๊ฒ ๊ฐ์๋ค ( greatest common divisor )