Bleeding edge

[프로그래머스] 땅따먹기 - 자바스크립트 본문

코딩테스트 공부

[프로그래머스] 땅따먹기 - 자바스크립트

codevil 2022. 4. 17. 18:08

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

 

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

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

programmers.co.kr

 

이렇게 풀어도 되겠지? 하고 고집부리다가 문제 풀이에 시간을 너무 많이 썼던 문제.. dp를 활용하면 금새 풀었을 꺼같지만 이번 기회에 dp에 대해서 공부할 수 있는 기회가 되서 좋았다. 간만에 풀이 감이 안잡혀서 검색을 해봤었는데

 

https://onlydev.tistory.com/71

 

[프로그래머스] 땅따먹기 | JavaScript

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

onlydev.tistory.com

onlydev님의 풀이의 그림을 보고, 생각을 해보니 이해가 잘됬다. arr slice같은 경우엔 잘 사용했는데 reduce를 생각하면 풀수 있었을꺼같은데 혼자 마무리를 못해서 아쉬웠다.

 

function solution(land) {
    let n = land.length;
    for(let i =1; i<n;i++){
        land[i] = land[i].map((v, index)=>v+Math.max(...land[i-1].slice(0, index), ...land[i-1].slice(index+1)))
    }
    return Math.max(...land[n-1]);
}

array slice는 아무래도 넘나 좋은거 같다.