#include <stdio.h>
int main(){
int N;
scanf("%d", &N);
long long DP[N+1][2] = {0,}; // N == 90인 경우, 수가 크므로 long long 형
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]; // 0일 때 1 또는 0이 오면 됨
DP[i][1] = DP[i-1][0]; //1일 때 앞에는 항상 0이 와야 함
}
printf("%lld", DP[N][0] + DP[N][1]);
}
[백준(BOJ)] 9465번: 스티커 (Dynamic Programming, C++) (0) | 2021.02.19 |
---|---|
[백준(BOJ)] 2156번: 포도주 시식 (Dynamic Programming, C++) (0) | 2021.02.19 |
[백준(BOJ)] 11057번: 오르막 수 (Dynamic Programming, C++) (0) | 2021.02.12 |
[백준(BOJ)] 10844번: 쉬운 계단 수 (Dynamic Programming, C++) (0) | 2021.02.12 |
[백준(BOJ)] 2522번: 별 찍기 - 12 (입출력, C++) (0) | 2021.02.11 |