def solution(land):
answer = 0
l = len(land)
dp = [[0]*4 for _ in range(l)]
dp[0] = land[0]
for i in range(1, l):
dp[i][0] = max(dp[i-1][1],dp[i-1][2],dp[i-1][3]) + land[i][0]
dp[i][1] = max(dp[i-1][0],dp[i-1][2],dp[i-1][3]) + land[i][1]
dp[i][2] = max(dp[i-1][0],dp[i-1][1],dp[i-1][3]) + land[i][2]
dp[i][3] = max(dp[i-1][0],dp[i-1][1],dp[i-1][2]) + land[i][3]
answer = max(dp[-1])
return answer
dp를 사용해 해결
이전에 밟은 땅과 같은 index의 땅은 밟을 수 없으므로 이전 누적 dp에서 해당 index 뺀 것중 max 값을 가져와 계속 누적시켜준다.