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;
}
등록된 질문이 없습니다. 궁금한 부분이 있으면 주저하지 말고 무엇이든 물어보세요.