[C++] 백준 1932


[C++] 백준 1932

#include <iostream> #include <algorithm> int TRI[501][501]; using namespace std; int main(void) { int N, Max = -1; cin >> N; for (int i = 1; i < N + 1; i++) { for (int j = 1; j < i + 1; j++) { int point; cin >> point; if (j == 1) TRI[i][j] = point + TRI[i - 1][j]; else if (j == i) TRI[i][j] = point + TRI[i - 1][j - 1]; else TRI[i][j] = point + max(TRI[i - 1][j], TRI[i - 1][j - 1]); if (TRI[i][j] > Max) Max = TRI[i][j]; } } cout << Max; } 이 문제는 DP로 쉽게 풀 수 있는 문제이다. 알고리즘은 다음과 같다. 1. 삼각형의 i행 1(j가 첫번...



원문링크 : [C++] 백준 1932