https://programmers.co.kr/learn/courses/30/lessons/12913
let height, width
function getMaxScore(dp,row,exceptColummn){
if(row == height) return 0
return Math.max(...dp[row].filter((num,i)=>i != exceptColummn))
}
function solution(land) {
var answer = 0;
height = land.length
width = land[0].length
const dp = Array.from(Array(height), ()=>Array(width).fill(0))
for(let i = height-1; i >= 0; i--){
for(let j = 0; j < width; j++){
dp[i][j] = land[i][j] + getMaxScore(dp,i+1,j)
}
}
answer = Math.max(...dp[0])
return answer;
}
오랜만에 dp문제를 풀어서 재밌었다.
풀이방법은 맨 아랫행부터 자신 다음행에 자신과 같은 열을 제외한 값중에 가장 큰 값을 골라서 더하여 저장해둔다 이를 위로 쭈욱 반복한다.
자바스크립트는 내장함수는 알고리즘 풀 때 정말 도움이 많이되서 좋다!!