[프로그래머스 | Python] 땅따먹기

게으른 완벽주의자·2023년 2월 8일
0

프로그래머스

목록 보기
49/83
post-custom-banner

프로그래머스_땅따먹기

기본적인 dp문제
현재 행보다 앞전 행에서 같은 인덱스인 값을 제외한 값들 중에 가장 큰 값을 더해가며 행을 내려온다
그리고 마지막 행에서 최댓값을 구하면 된다

def solution(land):
    n = len(land)
    dp = [[0]*4 for _ in range(n)]
    
    dp[0] = land[0]
    for i in range(1,n):
        for j in range(4):
            tmp = dp[i-1][:j]+dp[i-1][j+1:]
            dp[i][j] = max(tmp)+land[i][j]
    
    return max(dp[n-1])
profile
데이터를 공부하고 있습니다

0개의 댓글