[프로그래머스_12913] 땅따먹기 Python 풀이

출처: 프로그래머스

문제

image

풀이

동적계획법으로 풀어주었습니다.

cache는 그 위치의 숫자를 선택했을때 가질 수 있는 최대값입니다. 이 전의 값들 중(j-1) 같은 열의 위치를 제외하고 나머지 중에 가장 큰 값에 그 위치의 숫자를 더한 값을 저장해주었습니다.

코드

def solution(land):
    n = len(land)
    cache = [[0 for _ in range(4)] for _ in range(n)]
    cache[0] = land[0][:]
    for j in range(1, n):
        for k in range(4):
            cache[j][k] = max(cache[j-1][:k] + cache[j-1][k+1:]) + land[j][k]
    return max(cache[n-1])

Leave a comment