관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[알고리즘] 프로그래머스 땅따먹기 -연습문제- -dp- 본문

알고리즘/DP

[알고리즘] 프로그래머스 땅따먹기 -연습문제- -dp-

막무가내막내 2020. 5. 21. 23:28
728x90

https://programmers.co.kr/learn/courses/30/lessons/12913?language=java

 

코딩테스트 연습 - 땅따먹기

땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟��

programmers.co.kr

 

프로그래멋 LEVEL2의 땅따먹기 문제를 풀어봤습니다 ㅎㅎ

dp 로 바로 접근하고 복잡한 문제가 아니라 빠르게 풀 수 있었습니다. 

 

풀이는 다음과 같습니다.

[Java]

class Solution {
    int solution(int[][] land) {
        int answer = 0;
        for (int i = 1; i < land.length; i++) {
            land[i][0] += Math.max(land[i - 1][1], Math.max(land[i - 1][2], land[i - 1][3]));
            land[i][1] += Math.max(land[i - 1][0], Math.max(land[i - 1][2], land[i - 1][3]));
            land[i][2] += Math.max(land[i - 1][0], Math.max(land[i - 1][1], land[i - 1][3]));
            land[i][3] += Math.max(land[i - 1][0], Math.max(land[i - 1][1], land[i - 1][2]));
        }
        answer = Math.max(land[land.length-1][0], Math.max(land[land.length-1][1], Math.max(land[land.length-1][2], land[land.length-1][3])));
        return answer;
    }
}

 

[Kotlin]

class Solution {
    fun solution(land: Array<IntArray>): Int {
        var answer = 0
        for (i in 1 until land.size) {
            land[i][0] += Math.max(land[i - 1][1], Math.max(land[i - 1][2], land[i - 1][3]))
            land[i][1] += Math.max(land[i - 1][0], Math.max(land[i - 1][2], land[i - 1][3]))
            land[i][2] += Math.max(land[i - 1][0], Math.max(land[i - 1][1], land[i - 1][3]))
            land[i][3] += Math.max(land[i - 1][0], Math.max(land[i - 1][1], land[i - 1][2]))
        }
        answer = Math.max(land[land.size - 1][0], Math.max(land[land.size - 1][1], Math.max(land[land.size - 1][2], land[land.size - 1][3])))
        return answer
    }
}

 

 

댓글과 공감은 큰 힘이 됩니다. 감사합니다 !!

 

 

 

https://github.com/mtjin/algorithm_practice/tree/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%20%EB%95%85%EB%94%B0%EB%A8%B9%EA%B8%B0%20-%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C-%20-dp-

 

mtjin/algorithm_practice

알고리즘 문제풀이 연습. Contribute to mtjin/algorithm_practice development by creating an account on GitHub.

github.com

 

728x90
Comments