문제 설명
코드
import java.util.*;
class Solution {
static int max = Integer.MIN_VALUE;
static int n;
public int solution(int[][] triangle) {
n = triangle.length;
int dp[][]= new int[2][n];
dp[0][0] = triangle[0][0];
int idx =1;
for(int s=1;s<n;s++){
for(int i=0;i<s+1;i++){
if(i==0){
dp[1][i]=dp[0][i]+triangle[s][i];
}
else if(i==s){
dp[1][i] = dp[0][i-1]+triangle[s][i];
}
else{
dp[1][i] = Math.max(dp[1][i]=dp[0][i]+triangle[s][i],dp[1][i] = dp[0][i-1]+triangle[s][i]);
}
}
for(int i=0;i<n;i++){
dp[0][i] = dp[1][i];
}
}
return findmax(dp[1]);
}
static int findmax(int[] arr){
int max = arr[0];
for(int t : arr){
if(t>max){
max=t;
}
}
return max;
}
}