[프로그래머스 Lv.2] 연습문제 - 땅따먹기

김민지·2024년 1월 14일
0

✨ 문제 ✨

✨ 정답 ✨

function solution(land) {
    const dp = Array.from({length : land.length}, () => Array(4).fill(0));
    dp[0] = land[0];
    for(let i = 0; i< land.length - 1; i++){
        for(let j = 0; j < 4; j++)
            for(let k = 0; k < 4; k++){
                if(j===k){
                    continue;
                }
                const temp = dp[i][j] + land[i+1][k];
                if(temp > dp[i+1][k]){
                    dp[i+1][k] = temp;
                }
            }
    }
    return Math.max(...dp.at(-1));
}


// 행의 최댓값이 2개 이상일 경우 문제가 생긴다
// function solution(land) {
//     var answer = 0;
//     // 첫 번째 인덱스
//     let currentIndex=land[0].indexOf(Math.max(...land[0]));
//     answer=Math.max(...land[0])
//     for (let i=1;i<land.length;i++){
//         let copyLand=land.slice();
//         let maxIs=Math.max(...land[i]);
//         let indexIs=land[i].indexOf(maxIs)
//         if (currentIndex===indexIs){
//             copyLand[i][indexIs]=0;
//             maxIs=Math.max(...copyLand[i]);
//             indexIs=land[i].indexOf(maxIs)
//         }
//         currentIndex=indexIs
//         answer+=maxIs;

//     }

//     return answer;
// }

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보