문제 링크
요약
- LeetCode 120 과 동일한 문제
최종
결과
- 이건 LeetCode 120 과 동일한 문제다.
#include <string>
#include <vector>
using namespace std;
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN_I32 (0x80000000)
int solution(vector<vector<int>> triangle) {
int max = MIN_I32;
if (triangle.size() == 1) {
return triangle[0][0];
}
for (int i = 1; i < triangle.size(); i++) {
for (int j = 0; j < triangle[i].size(); j++) {
if (j == 0) {
triangle[i][j] += triangle[i - 1][j];
} else if (j + 1 == triangle[i].size()) {
triangle[i][j] += triangle[i - 1][j - 1];
} else {
triangle[i][j] += MAX(triangle[i - 1][j], triangle[i - 1][j - 1]);
}
}
}
for (auto t : triangle.back()) {
max = MAX(max, t);
}
return max;
}