728x90
파도반 수열
https://www.acmicpc.net/problem/9461
<코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> int main(void){ int testcase; long long Dp[101] = { 1, 1, 1, 1, 2, 2, }; scanf("%d",&testcase); for (int i = 6; i <= 100; i++) Dp[i] = Dp[i - 1] + Dp[i - 5]; while (testcase--){ int n; scanf("%d", &n); printf("%lld\n", Dp[n]); } } | cs |
<문제 푼 방법>
1. 이 문제 같은 경우는 초기값들을 제외하고 나머지 값들이 규칙을 가지고 변한다.
2. 그 규칙은 6번 이상의 숫자부터 Dp[i] = Dp[i-1] + Dp[i-5] 라는 규칙을 가지고 변하기 때문에 이 규칙만 발견한다면 쉽게 구할 수 있다.
728x90
'Algorithm > DP(동적 계획법)' 카테고리의 다른 글
[백준][2011번][DP] 암호코드 (2) | 2016.04.15 |
---|---|
[벡준][2225번][DP] 합분해 (1) | 2016.04.15 |
[백준][1699번][DP] 제곱수의 합 (0) | 2016.04.14 |
[백준][2579번][DP] 계단 오르기 (1) | 2016.04.14 |
[백준][1912번][DP] 연속합 (4) | 2016.04.14 |
댓글