title: "[프로그래머스] 땅따먹기 Python 파이썬 해설 (Level 2) - 이도훈"
cleanUrl: "programmers/12913"
description: "프로그래머스 Level 2 문제 [땅따먹기]의 풀이를 정리합니다."

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def solution(land):
    # Bottom-up DP로 풀어야 시간 초과가 나지 않는다.
    
    R, C = len(land), len(land[0])
    dp = [[-1 for _ in range(C)] for _ in range(R)]
    
    for c in range(C):
        dp[0][c] = land[0][c]
    
    for r in range(1, R):
        for c in range(C):
            dp[r][c] = max(dp[r-1][i] for i in range(C) if i != c) + land[r][c]
    
    return max(dp[R-1][c] for c in range(4))

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges