풀이:
첫 원소 : 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());
}
'알고리즘 일기' 카테고리의 다른 글
프로그래머스 : 가장 먼 노드 (0) | 2019.12.08 |
---|---|
프로그래머스: 단어변환 (0) | 2019.12.08 |
프로그래머스 : 단속카메라 (0) | 2019.12.06 |
프로그래머스: 섬 연결하기 (0) | 2019.12.06 |
프로그래머스 : 타일 장식물 (0) | 2019.12.05 |
댓글