[Programmers] 동적계획법(Dynamic Programming) - 정수 삼각형

zzenee·2022년 10월 11일
0

Algorithm&Coding-test

목록 보기
27/30
post-thumbnail

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

Problem

Code

import java.util.*;
class Solution {
    public int solution(int[][] triangle) {
        triangle[1][0] += triangle[0][0];
        triangle[1][1] += triangle[0][0];
        for (int i=2; i<triangle.length; i++) {
            for (int j=0; j<=i; j++) {
                if (j == 0) triangle[i][j] += triangle[i-1][0];
                else if (j == i) triangle[i][j] += triangle[i-1][j-1];
                else triangle[i][j] += Math.max(triangle[i-1][j-1], triangle[i-1][j]);
            }
        }
        int answer = 0;
        for (int max : triangle[triangle.length-1]) {
            answer = Math.max(answer, max);
        }
        return answer;
    }
}

Result

profile
꾸준히

0개의 댓글