1. 점화식
0으로 시작이 안되므로
dp[1][0] = 0
dp[1][1] = 1
이후 i가 2이상부터는
dp[i-1][0] -> dp[i][0]
dp[i-1][0] -> dp[i][1]
dp[i-1][1] -> dp[i][0]
dp[i-1][1] -> dp[i][1] (11이 연속되면 안되므로)
2. 코드
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
unsigned long long dp[91][2] = {};
dp[1][0] = 0;
dp[1][1] = 1;
for (int i = 2; i <= n; i++)
{
dp[i][0] = dp[i - 1][0] + dp[i - 1][1];
dp[i][1] = dp[i - 1][0];
}
printf("%llu", dp[n][0] + dp[n][1]);
return 0;
}반응형
'미분류' 카테고리의 다른 글
| [백준 9465] 스티커 (0) | 2020.02.19 |
|---|---|
| 마소 커뮤니티 Windows 포럼 첫답변 (0) | 2020.02.18 |
| [백준 11057번] 오르막 수 (0) | 2020.02.17 |
| plzrun 따라하기 (0) | 2020.02.17 |
| 10844 (0) | 2020.02.17 |