본문 바로가기
Algorithm

DP_N*N 이동경로 최대값을 구하라(음수존재)

by forkballpitch 2021. 11. 7.

문제

  • n*n 2차원 격자에 숫자가 써있음(음수 존재)
  • 오른쪽,아래로만 이동가능
  • 0,0 에서 n-1,n-1까지도 이동경로의 최대값을 구하여라
public class Main {

    static int max = 0;
    static int [][] dwMove;
    static int N,M;


    public static void main(String[] args) {
        int[][] arr = {{-5, 10, 50},
                         {-30, 2, 80},
                         {-60, 20, 9}};
        N = arr.length;
        M = arr.length;


        max = -999999999;
        dwMove = new int[N][M];


        dwMove[0][0] = arr[0][0];
        for(int i = 0; i < N ; i++){
            for(int j = 0; j < N ; j++){
                int arrnum =  arr[i][j];
                if(i==0){ 
                    //격자 맨 윗줄
                    if(j==0) continue;
                   
                    dwMove[i][j] = dwMove[i][j-1] + arrnum;
                }else if(j==0){ 
                		//격자 맨 왼쪽줄
                        dwMove[i][j] = dwMove[i-1][j] + arrnum;
                }else{

                        dwMove[i][j] = Math.max(dwMove[i - 1][j] + arrnum, dwMove[i][j - 1] + arrnum);
                }

            }
        }


        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++) {
                max = Math.max(dwMove[i][j] , max);
            }
        }

        System.out.println(max);


    }

}

 

'Algorithm' 카테고리의 다른 글

완전탐색_2019 삼성 낚시왕  (0) 2021.11.08
BruteForce_백준 1051 숫자 정사각형  (0) 2021.11.07
BruteForce_백준 1120 문자열  (0) 2021.11.07
DFS_leetcode numofisland  (0) 2021.09.23
softeer 지도 자동 구축  (0) 2021.09.23