삼각형이 주어질 때 최대경로의 합을 출력해내는 문제. 삼각형을 입력 받는 동시에 그 부분까지의 합을 기억하는 방법으로 풀이하였다.
#include<iostream>
using namespace std;
int val[501][501];
int dp[501][501];
int main(){
int N, ans=0;
cin>>N;
for(int i=1; i<=N; i++){
for(int j=1; j<=i; j++){
cin>>val[i][j];
dp[i][j]=max(dp[i-1][j-1], dp[i-1][j])+val[i][j];
ans=max(ans, dp[N][j]);
}
} cout<<ans;
}

'알고리즘' 카테고리의 다른 글
| Boj 9251 c++ LCS (0) | 2025.07.16 |
|---|---|
| Boj 9465 c++ 스티커 (0) | 2025.07.16 |
| Boj 15666 c++ N과 M(12) (0) | 2025.07.14 |
| Boj 11660 c++ 구간 합 구하기 5 (0) | 2025.07.14 |
| Boj 12865 c++ 평범한 배낭 (1) | 2025.07.14 |