https://leetcode.com/problems/triangle/
dp문제
삼각형 밑에까지 가면서 가장 최소가 되는 길의 값을 리턴하는 문제
triangle과 같은 구조의 dp 배열을 생성하고
현재시점에서 경로값을 누적해서 최소값을 dp값으로 주면 풀수 있음.
class Solution(object):
def minimumTotal(self, triangle):
"""
:type triangle: List[List[int]]
:rtype: int
"""
dp = [ [ 0 for m in range(len(triangle[j]))] for j in range(len(triangle))]
dp[0][0] = triangle[0][0]
for r in range(1, len(triangle),1):
for c in range(len(triangle[r])):
if c == 0:
dp[r][c] = dp[r-1][c] + triangle[r][c]
elif c == len(triangle[r])-1:
dp[r][c] = dp[r-1][c-1] + triangle[r][c]
else:
dp[r][c] = min(triangle[r][c]+dp[r-1][c-1], triangle[r][c]+dp[r-1][c])
return min(dp[-1])
'알고리즘 문제풀기' 카테고리의 다른 글
221. Maximal Square (0) | 2020.02.04 |
---|---|
1208. Get Equal Substrings Within Budget (0) | 2020.01.29 |
39. Combination Sum (0) | 2020.01.28 |
950. Reveal Cards In Increasing Order (0) | 2020.01.26 |
1277. Count Square Submatrices with All Ones (0) | 2020.01.25 |