[프로그래머스(Programmers)] 정수삼각형 (java, 동적계획법)

0
post-thumbnail

안녕하세요. 오늘은 프로그래머스의 정수삼각형 문제를 풀어보겠습니당~~


문제링크

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

전체 코드

public int solution(int[][] triangle) {
    int[][] dp = new int[triangle.length][triangle[triangle.length-1].length];
    int tmp = 0;

    for(int i=0; i<triangle.length; i++){
        for(int j=0; j<triangle[i].length; j++){
            if(i == 0){
                dp[i][j] = triangle[i][j];
            } else {
                if(j == 0) {
                    dp[i][j] = dp[i-1][j] + triangle[i][j];
                } else {
                    dp[i][j] = Math.max(dp[i-1][j-1]+triangle[i][j], dp[i-1][j]+triangle[i][j]);
                }
                tmp = tmp > dp[i][j] ? tmp : dp[i][j];
            }
        }
    }
    return tmp;
}

0개의 댓글