이 문제는 열의 크기는 4로 고정된 주어진 2차원 배열에서 각 행에 최대값인 땅을 밟는데 이전에 밟았던 열은 연속적으로 밟을 수 없다는 제약조건이 있을 때 밟은 땅들의 값을 모두 더했을 때 그 값이 최대가 되도록 했을 때 그 값을 출력하도록 하는 문제이다.
DP(다이나믹 프로그래밍) 문제로 나는 각 열에 이전 행에서 자신과 겹치는 열을 제외한 값들 중 최대값을 누적으로 합해가는 방식으로 문제를 풀었다.
def solution(land):
for i in range(1,len(land)):
land[i][0] += max(land[i-1][1], land[i-1][2], land[i-1][3])
land[i][1] += max(land[i-1][0], land[i-1][2], land[i-1][3])
land[i][2] += max(land[i-1][1], land[i-1][0], land[i-1][3])
land[i][3] += max(land[i-1][1], land[i-1][2], land[i-1][0])
return max(land[len(land)-1])