프로그래머스 Lv3 정수삼각형 Java

Android Chen·2021년 10월 28일
0

문제 설명

코드

import java.util.*;
class Solution {
    static int max = Integer.MIN_VALUE;
    static int n;
    public int solution(int[][] triangle) {
        n = triangle.length;
        int dp[][]= new int[2][n];
        dp[0][0] = triangle[0][0];
        int idx =1;
        for(int s=1;s<n;s++){
            for(int i=0;i<s+1;i++){
                if(i==0){
                    dp[1][i]=dp[0][i]+triangle[s][i];
                }
                else if(i==s){
                    dp[1][i] = dp[0][i-1]+triangle[s][i];
                }
                else{
                    dp[1][i] = Math.max(dp[1][i]=dp[0][i]+triangle[s][i],dp[1][i] = dp[0][i-1]+triangle[s][i]);
                }
            }
            for(int i=0;i<n;i++){
                dp[0][i] = dp[1][i];
            }
        }
        
        return findmax(dp[1]);
    }
    static int findmax(int[] arr){
        int max = arr[0];
        for(int t : arr){
            if(t>max){
                max=t;
            }
        }
        return max;
    }
}
profile
https://github.com/Userz1-redd

0개의 댓글