๋ฌธ์ ๋งํฌ
์ ๊ทผ๋ฐฉ๋ฒ
๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
1. ์ฌ๊ท์ ์ผ๋ก ํ์
์ข ๋ฃ ์กฐ๊ฑด : num === 0 ์ผ๋ 0, num === 1 ์ผ๋ 1์ returnํ๊ณ
์ฌ๊ท ์กฐ๊ฑด์ผ๋ก return fibo(num-1) + fibo(num-2) ๋ฅผ ๊ณ์ํด์ ํธ์ถํ๋ฉด ๋๋ค.
const fibo = (num) => { if(num === 1) return 1; else if(num === 0) return 0; let result = (fibo(num-1) + fibo(num-2)) % 1234567 return result }โ
์์ ์์์๋ ์ ์ ์๋ ํ์ง๋ง (%1234567)์ ์ด๋์ ๋ฃ์ด์ผ ํ๋ก๊ทธ๋๋จธ์ค์์ ํต๊ณผํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค..
2. dynamic Programing ๋ฐฉ์์ผ๋ก ํ์
n ํฌ๊ธฐ์ dp ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ด๊ธฐ๊ฐ dp[0], dp[1]์ ํ ๋น ํด์ค ๋ค,
dp[n] = dp[n-1] + dp[n-2]๋ผ๋ ํผ๋ณด๋์น ๊ณต์์ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ๊ตฌํ๋ค.
dp[0] = 0; dp[1] = 1; for(let num = 2; num <= n; num++){ dp[num] = (dp[num-1] + dp[num-2]) % 1234567 }โ
// dp ๋ฐฉ๋ฒ
function solution(n) {
let dp = Array.from({length : n}, () => 0);
dp[0] = 0;
dp[1] = 1;
for(let num = 2; num <= n; num++){
dp[num] = (dp[num-1] + dp[num-2]) % 1234567
}
return dp[n];
}
// ์ฌ๊ท ๋ฐฉ๋ฒ
function solution(n) {
const fibo = (num) => {
if(num === 1) return 1;
else if(num === 0) return 0;
let result = (fibo(num-1) + fibo(num-2)) % 1234567
return result
}
return fibo(n);
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ์ ํ์ ์๊ฐ ์ด๋ (12980) (0) | 2022.06.25 |
---|---|
[Javascript] 3 x n ํ์ผ๋ง (12902) (0) | 2022.06.25 |
[Javascript] ํ๋ ธ์ด์ ํ (12946) - fail (0) | 2022.06.24 |
[Javascript] [3์ฐจ] ์์ถ (17684) (0) | 2022.06.24 |
[Javascript] ์์ ๋์งํ (12985) (0) | 2022.06.24 |