-
DP_백준_정수 삼각형_1932Algorithm 2018. 8. 15. 23:42
1. 정의 : dp[n][m] : n행 m열 일때 합이 최대가 되는 경로의 합
2. 점화식 : dp[n][m] = max(dp[n-1][m], dp[n-1][m-1])+value[n][m]
3. 초기화 : dp[0][0] = value[0][0];
4. 반례 : m=0 일때 주의
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <iostream>using namespace std;int main() {int count;cin >> count;int ** value = new int*[count]; // inputint ** dp = new int*[count]; // memoizationfor (int i = 0; i < count; i++) {value[i] = new int[count];dp[i] = new int[count];}for (int i = 0; i < count; i++) {for (int j = 0; j <= i; j++) {cin >> value[i][j];}for (int j = 0; j < count; j++) {dp[i][j] = 0;}}dp[0][0] = value[0][0];//Initiallizefor (int i = 1; i <= count - 1; i++) {for (int j = 0; j <= i; j++) {if (j == 0||(dp[i-1][j]>dp[i-1][j-1])) {dp[i][j] = dp[i - 1][j] + value[i][j];}else {dp[i][j] = dp[i - 1][j - 1] + value[i][j];}}}int max = 0;for (int i = 0; i < count; i++) {if (max < dp[count - 1][i]) {max = dp[count - 1][i];}}cout << max << endl;}cs 'Algorithm' 카테고리의 다른 글
DP_백준_쉬운 계단 수_10844 (0) 2018.08.16 DP_백준_붕어빵 판매하기_11052 (0) 2018.08.16 DP_백준_RGB거리_1149 (0) 2018.08.15 DP_백준_1,2,3 더하기_9095 (0) 2018.08.15 DP_백준_2*n타일링2_11727 (0) 2018.08.15