function solution(n) {
if (n % 2 === 1) {
return 0;
}
n = n / 2 - 1;
let arr = [3, 11];
for (let i = 2; i <= n; i++) {
arr[i] =
((arr.reduce((a, b) => a + b, 0) * 2) % 1000000007) +
(arr[i - 1] % 1000000007) +
2;
}
return arr[n] % 1000000007;
}
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
- n์ด ํ์์ผ ๋, ๊ฒฝ์ฐ์ ์๊ฐ ์์ต๋๋ค. ๋ธ๋ก ํ๋์ ๋์ด๊ฐ 2์ธ๋ฐ ํ์๊ฐ ๋๋ฉด 3 * n๊ฐ ํ์์ด๊ธฐ์ ๋๋ ๋ 1์ด ๋จ๊ฒ ๋ฉ๋๋ค.
- ์ง์์ธ ๊ฒฝ์ฐ๋ง ์๊ฐํ์ ๋, n = 2์ผ ๋๋ f(2) = 3, n= 4 ์ผ ๋๋ f(4) = 11 ...
- f(n) = 3 * f(n-2) + 2 * f(n-4) + 2 * f(n-6) ... 2 * f(2) + 2 ๋ผ๋ ๊ท์น์ ์ ์ ์์ต๋๋ค.
- ์์ ์กฐ๊ฑด์ ๋ง๊ฒ ๋ฐ๋ณต๋ฌธ์ ํตํด ๋ฐฐ์ด์์ f(n) ๊ฐ์ ๋ฆฌํดํฉ๋๋ค.
๊ท์น๋ง ์๋ฉด ๊ตฌํํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ง๋ง, ๊ทธ ๊ท์น์ ์๊ธฐ๊ฐ ์ด๋ ค์ด ๊ฒ ํจ์ ใ ใ ใ ...
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ ์ฐพ๊ธฐ (0) | 2022.07.10 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ๋ ๋ฐ๋จน๊ธฐ (0) | 2022.07.09 |
[JS] ์ฐ์ต๋ฌธ์ - ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2022.07.07 |
[JS] ์ฐ์ต๋ฌธ์ - ๋ค์ ํฐ ์ซ์ (0) | 2022.07.06 |
[JS] ์ฐ์ต๋ฌธ์ - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.07.06 |