Python/알고리즘

DP Level 4 도둑질 - python (프로그래머스)

구름용 2023. 6. 30. 22:22
def solution(money):
    
    
    # 1번집 털었을 때
    dp_A = [0] * len(money)

    dp_A[0] = money[0]
    dp_A[1] = max(money[0], money[1])
    # 1번 안털고 2번부터 털었을 때
    dp_B = [0] * len(money)
    dp_B[0] = 0
    dp_B[1] = money[1]
    
    for i in range(2, len(money)-1):
        dp_A[i] = max(dp_A[i-1], dp_A[i-2] + money[i])
    
    for i in range(2, len(money)):
        dp_B[i] = max(dp_B[i-1], dp_B[i-2] + money[i])
    
    

    return max(max(dp_A), max(dp_B))