매일 C++ day 12 / 정수 삼각형
2021-06-10
정수 삼각형
https://programmers.co.kr/learn/courses/30/lessons/43105
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int>> cache(500);
vector<vector<int>> tri;
int dp(int n, int m)
{
if(n==tri.size()-1) return cache[n][m] = tri[n][m];
if(cache[n][m] != -1) return cache[n][m];
return cache[n][m] = tri[n][m] + max(dp(n+1, m), dp(n+1, m+1));
}
int solution(vector<vector<int>> triangle)
{
for(int i=0; i<triangle.size(); i++)
cache[i].assign(i+1, -1);
tri = triangle;
return dp(0,0);
}