진박사의 일상

[프로그래머스] 동적프로그래밍 문제 - 정수 삼각형 본문

프로그래밍/코딩테스트 공부

[프로그래머스] 동적프로그래밍 문제 - 정수 삼각형

진박사. 2021. 9. 10. 03:43
from collections import defaultdict

def solution(triangle):
    answer = 0
    d = defaultdict(int)

    d[(0, 0)] = triangle[0][0]
    print(len(triangle))
    for i in range(1, len(triangle)):
        for j in range(len(triangle[i])):
            left, right = 0, 0
            if i != j: #i == j 일때는 right = 0
                right = d[(i-1, j)]
            if j != 0: #j == 0 일때는 left = 0
                left = d[(i - 1, j - 1)]
            d[(i, j)] = max(triangle[i][j] + left, triangle[i][j] + right)
            if i == len(triangle) - 1:
                answer = max(answer, d[(i, j)])
    #print(d)
    return answer

멀쩡히 풀어놓고서 정말 멍청한 실수 때문에 한참 헤맸던 ㅋㅋ...