본문 바로가기
알고리즘 일기

프로그래머스: 정수 삼각형

by Beijing_KingGod 2019. 12. 6.

풀이:

 

첫 원소 : ans[i][j] = ans[i-1][j]+triangle[i][j]

마지막원소 : ans[i][j]=ans[i-1][j-1] + triangle[i][j];

나머지 원소 : ans[i][j] = max(ans[i-1][j-1]+triangle[i][j] , ans[i-1][j] + triangle[i][j]);

#include <string>
#include <vector>
#include<algorithm>
using namespace std;

int solution(vector<vector<int>> triangle) {
    vector<vector<int>> ans = triangle;
    for(int i=1 ; i<triangle.size(); i++){
        for(int j=0; j<=i; j++){
            if(j==0){
                ans[i][j] = ans[i-1][j] + triangle[i][j];
            }else if(j==i){
                ans[i][j]= ans[i-1][j-1] + triangle[i][j];
            }else{
                ans[i][j] = max(ans[i-1][j-1]+triangle[i][j], ans[i-1][j]+triangle[i][j]);
            }
        }
    }
    return *max_element(ans[ans.size()-1].begin(), ans[ans.size()-1].end());
}

 

댓글