가능한 경우를 부모노드가 1인 트리로 그려보면 규칙을 파악하기 쉽다.
이 문제도 어째 피보나치와 같은 형태가 되었다.
1 2 3 4 5 6 7 8 9
| #include <iostream> using namespace std; long long n, dp[91] = {0, 1}; int main() { cin >> n; for(int i = 2; i <= n; i++) dp[i] = dp[i - 1] + dp[i - 2]; cout << dp[n]; }
|