5번 코드 풀이

코드

#include<vector>
using namespace std;

int dp[100001][4] = {0};
int solution(vector<vector<int> > land)
{
    int r = land.size();
    for (int i = 0; i < 4; ++i)
    {
        dp[0][i] = land[0][i];
    }

    for (int i = 0; i < r; ++i)
    {
        for (int j = 0; j < 4; ++j)
        {
            for(int k = 0; k < 4; ++k)
            {
                if (j != k)
                {
                    dp[i][j] = max(dp[i][j], land[i][j] + dp[i-1][k]);
                }
            }
        }
    }
    int ans = 0;
    for (int i = 0; i < 4; ++i)
    {
        ans = max(ans, dp[r-1][i]);
    }
    return ans;
}

강의에 등록된 질문이 없습니다. 궁금한 부분이 있으면 주저하지 말고 무엇이든 물어보세요.