#include <iostream> #include <algorithm> using namespace std; int N; int arr[510][510]; int dp[510][510]; int solve(int row, int col) { if(row == N) { return 0; } if(dp[row][col] != 0) { return dp[row][col]; } dp[row][col] = max(solve(row+1, col) + arr[row][col], solve(row+1, col+1) + arr[row][col+1]); return dp[row][col]; } int main(void) { // freopen("B1932_input.txt", "r", stdin); cin >> N; for(int i = 0; i < N; i++) { for(int j = 0; j <= i; j++) { cin >> arr[i][j]; } } cout << solve(0, 0); return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 1010] 다리 놓기 (DP) (C/C++) (0) | 2020.03.15 |
---|---|
[백준 1149] RGB 거리 (DP) (C/C++) (★) (0) | 2020.03.15 |
[백준 1003] 피보나치 함수 (DP) (C/C++) (0) | 2020.03.15 |
[백준 10211] Maximum Subarray (DP) (C/C++) (★★) (0) | 2020.03.15 |
[백준 17485] 진우의 달 여행 (DP) (C/C++) (★) (0) | 2020.03.13 |