문제 :
양수로 이루어진 m x n 그리드를 인자로 드립니다.
상단 왼쪽에서 시작하여, 하단 오른쪽까지 가는 길의 요소를 다 더했을 때,가장 작은 합을 찾아서 return 해주세요.
한 지점에서 우측이나 아래로만 이동할 수 있습니다.
Input:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
Output: 7
설명: 1→3→1→1→1 의 합이 제일 작음
재귀(recursion)은 어떠한 것을 정의할 때 자기 자신을 참조하는 것을 뜻한다. -wiki 링크
list1 = []
def min_path_sum(grid):
def next(x,y,sum):
# 범위 밖으로 안나가게 범위 조절하기 !
if (x == (len(grid[0])-1)) and (y == (len(grid)-1)):
sum += grid[x][y]
list1.append(sum)
elif not ((x >= len(grid[0])) or (y >= len(grid))):
sum += grid[x][y]
next(x+1,y,sum)
next(x,y+1,sum)
next(0,0,0) #맨 처음 포인트부터 출발
print(list1)
return min(list1) # 제일 작은 애 뽑아오기