728x90
programmers.co.kr/learn/courses/30/lessons/43105
def solution(triangle):
dp = [[0] * i for i in range(1, len(triangle) + 1)]
dp[0][0] = triangle[0][0]
for i in range(1, len(dp)):
for j in range(len(dp[i])):
if j == 0:
dp[i][j] = triangle[i][j] + dp[i - 1][j]
elif j == len(dp[i]) - 1:
dp[i][j] = triangle[i][j] + dp[i - 1][j - 1]
else:
dp[i][j] = triangle[i][j] + max(dp[i - 1][j],dp[i - 1][j - 1])
return max(dp[len(triangle)-1])
동적계획법
쉽게 풀었다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 2156 포도주 시식, python (0) | 2021.04.26 |
---|---|
[백준] 11053 가장 긴 증가하는 부분 수열 python (0) | 2021.04.26 |
[백준] 1753 최단경로 python (0) | 2021.04.22 |
[프로그래머스] 모두 0으로 만들기, 월간 코드 챌린지, python (0) | 2021.04.18 |
[백준] 13460 구슬 탈출2 python (0) | 2021.04.14 |