반응형
f[i][0] = f[i - 1][0] + f[i - 2][0];
f[i][1] = f[i - 1][1] + f[i - 2][1];
https://www.acmicpc.net/problem/1003
BOJ 1103 - 피보나치 함수 (C++)
다이내믹 프로그래밍으로 접근하여 풀 수 있는 문제다.
아래 수식을 이용하면 정답을 구할 수 있다.
f[i][0] = f[i - 1][0] + f[i - 2][0];
f[i][1] = f[i - 1][1] + f[i - 2][1];
#include <iostream>
using namespace std;
int f[41][41];
int T, N;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
f[0][0] = 1;
f[0][1] = 0;
f[1][0] = 0;
f[1][1] = 1;
for (int i = 2; i <= 40; i++)
{
f[i][0] = f[i - 1][0] + f[i - 2][0];
f[i][1] = f[i - 1][1] + f[i - 2][1];
}
cin >> T;
for (int tc = 0; tc < T; tc++)
{
cin >> N;
cout << f[N][0] << " " << f[N][1] << endl;
}
return 0;
}
반응형
'개발 > 알고리즘 & 자료구조' 카테고리의 다른 글
BOJ 17219 - 비밀번호 찾기 (C++) (0) | 2021.09.26 |
---|---|
BOJ 2638 - 치즈 (C++) (0) | 2021.09.25 |
BOJ 1091 - 카드 섞기 (C++) (0) | 2021.09.23 |
[프로그래머스] 예산 (C++) (0) | 2021.09.10 |
[2018 카카오 코딩테스트 1차] 캐시 (C++) (0) | 2021.09.09 |