NOTE/프로그래머스
정수 삼각형
m-inz
2022. 9. 30. 16:51
class Solution {
static int[][] dp;
static int N;
public int solution(int[][] triangle) {
int answer = 0;
N = triangle.length;
dp = new int[N+1][N+1];
for(int i=1; i<=N; i++){
dp[i][1] = dp[i-1][0] + triangle[i-1][0]; //처음
int M = triangle[i-1].length;
for(int j=1; j<=M-1; j++){ //중간
dp[i][j] = Math.max(dp[i-1][j-1],dp[i-1][j]) + triangle[i-1][j-1];
}
dp[i][M] = dp[i-1][M-1] + triangle[i-1][M-1]; //끝
}
for(int i=1; i<=N; i++){
answer= Math.max(answer,dp[N][i]); //바닥에서 큰 값
}
return answer;
}
}
다시 푸니까 헷갈리네 .. .🥲