[프로그래머스] 절대 외부 IDE를 써선 안돼/Java

[lv2] 땅따먹기

SH3542 2024. 11. 23. 21:48

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

 

dp로 현재 행렬을 밟았을 때 최대로 얻을 수 있는 값을 기록한다.

문제 조건에 따라, 이전 행에서 같은 열을 밟은 경우는 제외한다.

 

class Solution {
    int L;
    int[][] land, dp;

    void solve() {

        for(int i=1; i<L; i++) {
            for(int j=0; j<4; j++) {
                int max = 0;
                for(int k=0; k<4; k++) {
                    if(k!=j)
                        max = Math.max(max, dp[i-1][k]);
                    dp[i][j] = max + land[i][j];
                }
            }
        }
    }


    int solution(int[][] land) {
        int answer = 0;
        this.land = land;
        L = land.length;
        dp = new int[L][4];

        for(int i=0; i<4; i++)
            dp[0][i] = land[0][i];

        solve();

        for(int i=0; i<4; i++)
            answer = Math.max(answer, dp[L-1][i]);

        return answer;
    }
}

'[프로그래머스] 절대 외부 IDE를 써선 안돼 > Java' 카테고리의 다른 글

[lv3] 등대  (0) 2024.12.04
[lv3] 합승 택시 요금  (0) 2024.11.30
[lv2] 롤케이크 자르기  (0) 2024.11.19
[lv2] 게임 맵 최단거리  (0) 2024.11.19
[lv2] 영어 끝말잇기  (1) 2024.11.19