728x90
2xn 타일링
https://www.acmicpc.net/problem/11726
<코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main(void){ int Dp[1010] = {}; int n; Dp[0] = 1; Dp[1] = 1; scanf("%d", &n); for (int i = 2; i <= n; i++) Dp[i] = (Dp[i - 1] +Dp[i-2])%10007; printf("%d\n", Dp[n] % 10007); return 0; } | cs |
<문제 푼 요령>
1. Dp[i] 의 값을 만드는 경우는 앞에 타일이 1개 세로로 있을 경우와 앞에 타일이 2개 가로로 있을 경우를 더하면 된다.
2. 즉 Dp[i] = Dp[i-1] + Dp[i-2] 의 값을 저장해서 구하면 된다. 어찌보면 피보나찌 수열과 같다.
728x90
'Algorithm > DP(동적 계획법)' 카테고리의 다른 글
[백준][11052번][DP] 붕어빵 (0) | 2016.04.13 |
---|---|
[백준][11727번][DP] 2xn 타일링 2 (2) | 2016.04.12 |
[백준][1463번][DP] 1로 만들기 (1) | 2016.04.12 |
[백준][2133번][DP] 타일 채우기 (0) | 2016.04.12 |
[백준][1520번][DP] 내리막길 (8) | 2016.04.12 |
댓글