๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

์„ ๋‹ฌ 2023. 5. 26. 23:09
๋ฐ˜์‘ํ˜•

https://school.programmers.co.kr/learn/courses/30/lessons/12953

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ’€์ด

lcg() : a์™€ b์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค (์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ด์šฉ)

lcm() : a์™€ b์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค (a*b/์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ = ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ์ด์šฉ)

arr ๋ฐฐ์—ด์„ ๋Œ๋ฉด์„œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ณ„์† ๊ตฌํ•˜๋ฉฐ ์—…๋ฐ์ดํŠธํ•ด๋‚˜๊ฐ€๋ฉด ๋!

function lcg(a, b) {
    if(b===0) {
        return a;
    }
    return lcg(b, a%b);
}

function lcm(a, b) {
    let tmp = a>b ? lcg(a,b) : lcg(b,a);
    return a/tmp*b;
}

function solution(arr) {
    let answer = arr[0];
    for(let i=1; i<arr.length; i++) {
        answer = lcm(answer, arr[i]);
    }
    return answer;
}
๋ฐ˜์‘ํ˜•