땅따먹기

LJM·2023년 3월 29일
0

programmers

목록 보기
5/92

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

이전에 거의 같은 DP 문제를 풀었을때의 풀이가 기억이 나서 쉽게 풀 수 있었다

https://www.acmicpc.net/problem/1149

https://www.acmicpc.net/problem/2579

시간복잡도
O(NC^2)
100000
4 * 4

import java.util.*;

class Solution {
    int solution(int[][] land) {
        int answer = 0;
        int row = land.length;
        int col = land[0].length;

        int[][] dp = new int[row][col];
        
        for(int i = 0; i < col; ++i)
            dp[0][i] = land[0][i];
        
        for(int i = 1; i < row; ++i)
        {
            for(int j = 0; j < col; ++j)
            {
                int max = 0;
                for(int k = 0; k < col; ++k)
                {
                    if(j != k)
                        max = Math.max(max, dp[i-1][k]);
                }    
                dp[i][j] = max + land[i][j];
                //System.out.print(dp[i][j]);
            }
            //System.out.println();
        }

        for(int i = 0; i < col; ++i)
        {
            answer = Math.max(answer, dp[row-1][i]);
        }
        
        return answer;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글