본문 바로가기
알고리즘/DP

#23 [파이썬] 프로그래머스: 정수 삼각형

by 채채씨 2021. 6. 27.
728x90
반응형

<문제>
https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3

 

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

[[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][0] 
            elif i == j: 
                triangle[i][j] += triangle[i-1][-1] 
            else: 
                triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j]) 
    answer = max(triangle[-1]) 
    return answer


<NOTE>

 

  • 위에서부터 차례대로 maximum으로 만들어 값을 바꾸면서 채운 후, 최종 값을 비교하여 가장 큰 값을 return한다. (작은 문제 해결함으로써 → 큰 문제 해결)
  • 가장 왼쪽에 위치한 값은 윗 줄의 가장 왼쪽에 위치한 값만을 더할 수 있고, 가장 오른쪽에 위치한 값은 윗 줄의 가장 오른쪽에 위치한 값만을 더할 수 있다. 그 외의 중간에 있는 값들은 윗 줄의 왼쪽과 오른쪽 중 최댓값과 더하면 된다.

 

728x90
반응형

댓글