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))