본문 바로가기

PS/프로그래머스

[프로그래머스-동적계획법] 정수 삼각형_파이썬 ❌⭕

programmers.co.kr/learn/courses/30/lessons/43105

 

코딩테스트 연습 - 정수 삼각형

[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30

programmers.co.kr


def solution(triangle):
    for i in range(1, len(triangle)):
        for j in range(i+1):
            if j == 0:
                triangle[i][j] += triangle[i-1][j]
            elif j == i:
                triangle[i][j] += triangle[i-1][j-1]
            else:
                triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j])
        
    return max(triangle[-1])
  • if j == 0: 윗층의 맨 왼쪽에 있는 수만 더할 수 있다.
  • if j == i: 윗층의 맨 오른쪽에 있는 수만 더할 수 있다.
  • else: max(triangle[i-1][j-1], tirangle[i-1][j])를 더한다.