각 행에서 최선의 선택을 저장해두기 => DP
function solution(land) {
const len = land.length;
for (let i = 1; i < len; ++i) {
for (let j = 0; j < 4; ++j) {
const curr = land[i][j];
let tmp = 0;
for (let k = 0; k < 4; ++k) {
if (k === j) continue;
tmp = Math.max(tmp, curr + land[i - 1][k]);
}
land[i][j] = tmp;
}
}
return Math.max(...land.at(-1));
}
혼자 BFS니 뭐니 하다가 답이 안 나와서 아래 블로그를 참고했다.
https://shanepark.tistory.com/183