๋ฌธ์ ๋งํฌ
์ ๊ทผ ๋ฐฉ๋ฒ
์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ํจ์ gcd๋ฅผ ๋ง๋ค์ด์
์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉ ( (a,b)์ ์ต์ ๊ณต๋ฐฐ์ : a * b / gcd(a, b) )
โป reduce : accumulator(๋์ฐ๊ธฐ), currentValue(ํ์ฌ๊ฐ), currentIndex(ํ์ฌ ์ธ๋ฑ์ค), array(์๋ณธ ๋ฐฐ์ด), initialValue(์ฒซ ๋ฒ์งธ ์ธ์์ ์ ๊ณต ๊ฐ)์ ์ธ์๋ก ๋ฐ๋๋ค.
์ด๋ accumulator, currentValue์ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ๋ค์ด๊ฐ๊ณ , ๋๋จธ์ง๋ ์ต์ ๊ฐ์ด๋ค.
์ฆ, ๊ธฐ๋ณธํ reduce(a, b)์์ a๋ ๋์ ๊ฐ์ด ๋ค์ด๊ฐ๊ณ b์๋ ๋ค์ ๋ฐฐ์ด์ ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
์ฝ๋์์ reduce์ ์ถ๋ ฅ์ { }์ ๋ฃ์ผ๋ฉด ์ค๋ฅ๊ฐ ๋์ค๋๋ฐ.. console์ ์ฐ์ด๋ด๋ ๊ฐ๊ฒ ๋์ค๋๋ฐ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋ค.
return arr.reduce((a, b) => {(a * b) / getGcd(a, b)})โ
==> MDN ๊ณต์ ๋ฌธ์๋ฅผ ์ดํด๋ณด๋, ์ด๊ธฐ๊ฐ(initialValue)๋ฅผ ์ค์ ํ์ง ์๊ณ { }์ ์ฌ์ฉํด์ ๋ฌธ๋ฒ์ ์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
reduce์์ { }์ ์ฌ์ฉํ๋ ค๋ฉด ์๋์ฒ๋ผ ์ฌ์ฉํด์ผ ํ๋ค.
return arr.reduce((a, b) => {(a * b) / getGcd(a, b)}, ์ด๊ธฐ๊ฐ)โโ
function solution(arr) {
return arr.reduce((a, b) => (a * b) / getGcd(a, b))
}
function getGcd(a, b) {
return a % b ? getGcd(b, a % b) : b;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ํ๋ฆฐํฐ (42587) (0) | 2022.05.06 |
---|---|
[Javascript] ๊ดํธ ๋ณํ (60058) (0) | 2022.05.06 |
[Javascript] ํํ (64065) (0) | 2022.05.04 |
[Javascript] 3์ง๋ฒ ๋ค์ง๊ธฐ (68935) (0) | 2022.05.04 |
[Javascript] ์ฝ์์ ๊ฐ์์ ๋ง์ (77884) (0) | 2022.05.04 |