hwooo
BOJ (C/C++) 14494번: 다이나믹이 뭐예요? 본문
https://www.acmicpc.net/problem/14494


14494번: 다이나믹이 뭐예요?
(1, 1)에서 (n, m)에 도달하는 경우의 수를 구하여라. 단, 경우의 수가 엄청 커질 수 있으므로 경우의 수를 1,000,000,007(=109+7)로 나눈 나머지를 출력한다.
www.acmicpc.net


풀이
D[i][j]에 도달하는 경우의 수는 →, ↓, ↘의 세 방향에서 오는 경우의 수의 합이다.코드
#include <stdio.h>
unsigned int DP[1001][1001];
int main() {
int n, m;
scanf("%d %d", &n, &m);
for (int i = 1; i <= 1000; i++) DP[i][1] = DP[1][i] = 1;
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= m; j++) {
DP[i][j] = (DP[i - 1][j - 1] + DP[i][j - 1] + DP[i - 1][j])%1000000007;
}
}
printf("%d", DP[n][m]);
return 0;
}
'Study > Algorithm' 카테고리의 다른 글
BOJ (C/C++) 1022번: 소용돌이 예쁘게 출력하기 (0) | 2022.11.26 |
---|---|
BOJ (C/C++) 2028번: 자기복제수 (0) | 2022.11.25 |
BOJ (C/C++) 1991번: 트리 순회 (0) | 2022.11.25 |
BOJ (C/C++) 10953번: A+B - 6 (0) | 2022.11.24 |
BOJ (C/C++) 10817번: 세 수 (0) | 2022.11.24 |