프로그래머스 Lv.2: 땅따먹기

Steve·2021년 11월 15일
0

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

이 문제는 Dynamic programming 으로 풀어야 하는 문제이다.
기록해 나가야 한다

4개의 칸에서 각각 출발해서 다음 칸에서 자신의 열을 제외하고 가장 큰 값을 더해나간다.

그 후 마지막 열에서 가장 큰 값을 return 하면 된다.

function solution(land) {
    var answer = 0;
    for (let i = 1; i < land.length; i++){
        land[i][0] += Math.max(land[i-1][1], land[i-1][2], land[i-1][3])
        land[i][1] += Math.max(land[i-1][0], land[i-1][2], land[i-1][3])
        land[i][2] += Math.max(land[i-1][0], land[i-1][1], land[i-1][3])
        land[i][3] += Math.max(land[i-1][0], land[i-1][1], land[i-1][2])
    }
    return Math.max(...land[land.length-1]);
}
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글