728x90
1003๋ฒ: ํผ๋ณด๋์น ํจ์
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค 0์ด ์ถ๋ ฅ๋๋ ํ์์ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
โจ ๋ด ์์ค ์ฝ๋
#include<iostream>
using namespace std;
int memo[41][2] = { {1,0},{0,1} };//{0๊ฐ์, 1๊ฐ์}
void fibo() {
for (int i = 2; i < 41; i++) {
memo[i][0] = memo[i - 1][0] + memo[i - 2][0];
memo[i][1] = memo[i - 1][1] + memo[i - 2][1];
}
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int num, n;
fibo();
cin >> num;
while (num--) {
cin >> n;
cout << memo[n][0] << " " << memo[n][1]<<endl;
}
return 0;
}
๐ ๋ฌธ์ ํ์ด
fibo(2) = fibo(1)+fibo(0)
fibo(3) = fibo(2)+fibo(1)
fibo(4) = fibo(3)+fibo(2)
...
์์ ๊ฐ์ด fibo(n) = fibo(n-1)+fibo(n-2) ์ด๋ค
์ด๋ฅผ ์ด์ฉํด์ fibo(2)์ 0๊ฐ์๋ fibo(1)์ 0๊ฐ์ + fibo(0)์ 0๊ฐ์
fibo(3)์ 0๊ฐ์๋ fibo(2)์ 0๊ฐ์ + fibo(1)์ 0๊ฐ์
fibo(4)์ 0๊ฐ์๋ fibo(3)์ 0๊ฐ์ + fibo(2)์ 0๊ฐ์
์ ๊ฐ์ด ๊ณ์ฐ์ ํ๋ค
1์ ๊ฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณ์ฐ์ ํ ๋ค, ์ํ๋ N์ 0๊ฐ์์ 1๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค
๊ฐ๋จํ DP ๋ฌธ์ ์๋ค
โญ ๋ฌธ์ ํ์ด ๊ฒฐ๊ณผ

728x90