Home 프로그래머스(정수 삼각형)
Post
Cancel

프로그래머스(정수 삼각형)

첫 시도

  • dp문제중 매우 유명한 정수삼각형 문제이다.
  • triangle[0][0]을 기저사례로 두고 바텀업 방식으로 해결했다.
  • ex) 7 + 3과 dp[1][0]의 값을 비교해 큰 수로 대체시킨다.
  • 간단한 문제지만 구현이 생각보다 오래걸렸다. -> 분발할 것 –

해결

  • 내용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;

class Solution {

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

        dp[0][0] = triangle[0][0];

        for(int i = 0; i<dp.length-1; i++) {
            for (int j = 0; j <= i; j++) {
                dp[i + 1][j] = Math.max(dp[i + 1][j], dp[i][j] + triangle[i + 1][j]);
                dp[i + 1][j + 1] = dp[i][j] + triangle[i + 1][j + 1];
            }
        }
        Arrays.sort(dp[dp.length-1]);
        answer = dp[dp.length-1][dp[0].length-1];

        return answer;
    }
}

참고

  • 직접구현
This post is licensed under CC BY 4.0 by the author.