성우리뷰

정수삼각형

두원공대88학번뚜뚜 2021. 7. 24. 00:13
#include <string>
#include <vector>

using namespace std;
int dp[500][500];

int solution(vector<vector<int>> triangle) {
    int answer = 0;
    dp[0][0] = triangle[0][0];
    
    for(int i=0; i<triangle.size()-1; i++) {
        for(int j=0; j<triangle[i].size(); j++) {
            dp[i+1][j] = dp[i+1][j] > dp[i][j] + triangle[i+1][j]?
                dp[i+1][j] : dp[i][j] + triangle[i+1][j];
            dp[i+1][j+1] = dp[i+1][j+1] > dp[i][j] + triangle[i+1][j+1]?
                dp[i+1][j+1] : dp[i][j] + triangle[i+1][j+1];
        }
    }
    for(int i=0; i<triangle.size(); i++) {
        answer = answer > dp[triangle.size()-1][i] ?
            answer : dp[triangle.size()-1][i];
    }
   
    return answer;
}

레벨3치곤 쉽다