Question
๋ฐฑ์ค 10870๋ฒ : ํผ๋ณด๋์น ์ 5
ํผ๋ณด๋์น ์๋ 0๊ณผ 1๋ก ์์ํ๋ค. 0๋ฒ์งธ ํผ๋ณด๋์น ์๋ 0์ด๊ณ , 1๋ฒ์งธ ํผ๋ณด๋์น ์๋ 1์ด๋ค.
๊ทธ๋ค์ 2๋ฒ์งธ๋ถํฐ๋ ๋ฐ๋ก ์ ๋ ํผ๋ณด๋์น ์์ ํฉ์ด ๋๋ค.
์ด๋ฅผ ์์ผ๋ก ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ ๋๋ค.
n=17์ผ ๋๊น์ง ํผ๋ณด๋์น ์๋ฅผ ์จ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
n์ด ์ฃผ์ด์ก์ ๋, n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ n์ด ์ฃผ์ด์ง๋ค. n์ 20๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ ๋๋ 0์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ์์
10
์ถ๋ ฅ์์
55
My Code
const input = require('fs').readFileSync('dev/stdin').toString().trim();
let x = Number(input);
function fibo(n) {
return n < 2 ? n : fibo(n-1) + fibo(n-2);
}
console.log(fibo(x));
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
ํผ๋ณด๋์น์์ด์ ์ฒ์ ๋ดค์ ๋๋ ๋๊ฐํ๋ค.
ํน์ ์ ์ธ ๊ท์น์ด ์์ด ๋ณด์ด๋๋ฐ ์์ด์ด๋ผ๊ณ ..? ๊ณ ๋ฑํ๊ต ์ํ ์๊ฐ์ ๋ฐฐ์ด ๊ธฐ์ต์ด ํ๋ฆฟํ๋ค.
ํผ๋ณด๋์น ์์ด์ด ๋ญ์ง ์ฝ๊ฒ ์ค๋ช ํด์ค ์ ํ๋ธ ๊ฐ์๊ฐ ์์ด ์ฒจ๋ถํ๋ค.
์๋ฃ๊ตฌ์กฐ์ ๋ํ ์ดํด๊น์ง ๋ค์ผ๋ก ๋ค์ด์จ๋ค.
์ค๋ช ์ด ์ ๋ง ๊น๋ํ๋ค.
ํผ๋ณด๋์น์์ด์ ํ๊ธฐ ์ํด์๋ ์ฌ๊ท๊ฐ ํ์์ ์ด๋ค!๋ผ๋ ๊ฒฐ๋ก ์ ์ป์๋ค.
๋ฌธ์ ์๋ ๋์์๋ฏ n์ด 2๋ณด๋ค ์์ ๊ฒฝ์ฐ ์์ ์ ๋ฆฌํดํ๊ฒ ๋์๊ณ
2 ์ด์๋ถํฐ๋ ์ฌ๊ท๋ฅผ ํตํด ์ด์ ํญ๊ณผ ๊ทธ ์์ ํญ์ ๋ํ ๊ฐ์ ๋ฆฌํดํ๋ค.
์ฒ์ ์ดํดํ ๋๋ ์ด๊ฒ ๋ญ์ง ์ถ๋ค๊ฐ ํ ๋ฒ ์ดํดํ๋ฉด ๊ธ๋ฐฉ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
ํผ๋ณด๋์น์์ด์ ์ดํดํ๊ธฐ ์ํ ์๊ฐ์ด ๊ฑธ๋ ธ์ง ์ฝ๋๋ฅผ ์์ฑํ๋ ์๊ฐ์ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์๋ค.
์ ์ ๋ ์ฝ๋ฉํ๋ ๊ฒ ์ฝ๊ณ ์์ ์ต์์ผ๋ฉด ์ข๊ฒ ๋ค๐
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 10841๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2022.05.28 |
---|---|
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.05.24 |
[JS] ๋ฐฑ์ค 10872๋ฒ : ์ฌ๊ท (0) | 2022.05.15 |
[JS] ๋ฐฑ์ค 2108๋ฒ : ํต๊ณํ (0) | 2022.05.13 |
[JS] ๋ฐฑ์ค 2750๋ฒ : ์ ์ ๋ ฌํ๊ธฐ (0) | 2022.05.09 |