DP 문제입니다.
#include<iostream> #include<string.h> #include <algorithm> #include<vector> using namespace std; int num, cur = 2; unsigned long long dp[1001]; int main(void) { scanf("%d", &num); memset(dp, 0, num + 1); dp[0] = 1; dp[1] = 2; while (cur < num) { dp[cur + 1] = (dp[cur + 1] + dp[cur] + 1)%10007; dp[cur + 2] = (dp[cur + 2] + dp[cur] + 1)%10007; cur++; } if (num == 1) printf("1\n"); else printf("%llu\n", (dp[cur] + 2)%10007); return 0; }
'IT > BOJ' 카테고리의 다른 글
백준(BOJ) 14621 나만 안되는 연애 ** (0) | 2018.06.03 |
---|---|
백준(BOJ) 15787 기차가 어둠을 헤치고 은하수를 ** (0) | 2018.06.02 |
백준(BOJ) 11084 나이트의 염탐 ** (0) | 2018.06.01 |
백준(BOJ) 2449 전구 *** (0) | 2018.06.01 |
백준(BOJ) 1026 보물섬 ** (0) | 2018.06.01 |