코딩테스트/프로그래머스

[프로그래머스] 정수 삼각형 - JAVA

ankisile 2023. 7. 30. 00:19

문제

https://school.programmers.co.kr/learn/courses/30/lessons/43105

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

class Solution {
    public int solution(int[][] triangle) {
        
        int dp [][] = new int [triangle.length][triangle.length];
        
        dp[0][0] = triangle[0][0];
        dp[1][0] = triangle[1][0] + dp[0][0];
        dp[1][1] = triangle[1][1] + dp[0][0];
        
        for(int i=2;i<triangle.length;i++){
            dp[i][0] = dp[i-1][0] + triangle[i][0];
            dp[i][i] = dp[i-1][i-1] + triangle[i][i];
            
            for(int j=1;j<i;j++){
                dp[i][j] = Math.max(dp[i-1][j-1], dp[i-1][j]) + triangle[i][j];
            }
        }
        
            
        int answer = 0;
        
        for(int i=0;i<triangle.length;i++){
            if(answer < dp[triangle.length-1][i])
                answer = dp[triangle.length-1][i];
        }
        
        return answer;
    }
}