https://leetcode.com/problems/triangle/
Triangle - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
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 |