프로그래머스. 도둑질 파이썬 풀이

minan·2021년 7월 2일
0

프로그래머스

목록 보기
91/92

프로그래머스. Level 3. 도둑질 파이썬 풀이

문제링크 https://programmers.co.kr/learn/courses/30/lessons/42897

def solution(money):
    answer = 0
    
    # 첫번째 집을 안털었을 때
    d = [0] * len(money)

    d[0] = 0
    d[1] = money[1]

    for i in range(2, len(money)):
        if i == 2:
            d[i] = max([d[i - 1], d[i - 2] + money[i]])
        else:
            d[i] = max(d[i - 1], d[i - 2] + money[i], d[i - 3] + money[i])
    
    # 마지막 집을 안털었을 때
    d1 = [0] * len(money)

    d1[0] = money[0]
    d1[1] = money[1]
    money[-1] = 0

    for i in range(2, len(money)):
        if i == 2:
            d1[i] = max(d1[i - 1], d1[i - 2] + money[i])
        else:
            d1[i] = max(d1[i - 1], d1[i - 2] + money[i], d1[i - 3] + money[i])


    return max(d[-1], d1[-1])
profile
https://github.com/minhaaan

0개의 댓글