728x90
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
const int MAX = 501;
int dp[MAX][MAX];
int solution(vector<vector<int>> triangle) {
int answer = 0;
dp[0][0] = triangle[0][0];
for(int i=1;i<triangle.size();i++){
for(int j=0;j<triangle[i].size();j++){
if(j==0){
dp[i][j] = dp[i-1][j] + triangle[i][j];
}else if(i==j){
dp[i][j] = dp[i-1][j-1] + triangle[i][j];
}else{
dp[i][j] = max(dp[i-1][j-1],dp[i-1][j]) + triangle[i][j];
}
}
}
for(int i=0;i<MAX;i++){
for(int j=0;j<MAX;j++){
answer = max(answer,dp[i][j]);
}
}
return answer;
}
|
cs |
728x90
'Algorithm > 동적계획법' 카테고리의 다른 글
[백준] 9461 파도반 수열 c++ (0) | 2023.03.23 |
---|---|
[백준] 2579 계단 오르기 c++ (0) | 2023.02.24 |
[백준] 11055 가장 큰 증가 부분수열 (0) | 2022.02.19 |
[백준] 2293 동전1 c++ (0) | 2022.02.18 |
[백준] 2156 포도주 시식 c++ (0) | 2022.02.16 |
댓글