import random
mat = [[random.choice(range(50)) for _ in range(10)] for _ in range(10)]
m = len(mat)
len(mat)
for i in range(m):
print(mat[i])
def matrixPath(i, j):
if i == 0 and j == 0:
return mat[i][j]
if j == 0:
return matrixPath(i-1, 0) + mat[i][0]
if i == 0:
return matrixPath(0, j-1) + mat[0][j]
return min(matrixPath(i-1, j) + mat[i][j], matrixPath(i, j-1) + mat[i][j])
%timeit matrixPath(m-1, m-1)
memo = [[] for _ in range(m)]
memo
for i in range(m):
for j in range(len(mat[i])):
memo[i].append(-1)
memo
def matrixPath_memo(i, j):
if memo[i][j] != -1:
return memo[i][j]
if i == 0 and j == 0:
memo[i][j] = mat[i][j]
elif j == 0:
memo[i][0] = matrixPath_memo(i-1, 0) + mat[i][0]
elif i == 0:
memo[0][j] = matrixPath_memo(0, j-1) + mat[0][j]
else:
memo[i][j] = min(matrixPath_memo(i-1, j) + mat[i][j],
matrixPath_memo(i, j-1) + mat[i][j])
return memo[i][j]
%timeit matrixPath_memo(m-1, m-1)
for i in range(m):
print(memo[i])
memo[5][5]
'반치용 > 기타 및 저장' 카테고리의 다른 글
[pytorch]resnet 전이학습 튜토리얼을 이용한 예측 확률과 정밀도간 선형성(비례성)확인 (0) | 2020.06.22 |
---|---|
[기타] 이것들을 누가 보는걸까... (0) | 2020.06.18 |
[파이썬]random matrix 만드는 코드 (0) | 2020.06.18 |
[R]xgboost 코드 (iris) (0) | 2020.06.18 |
[파이썬]글 내의 단어 빈도 체크 (0) | 2020.06.17 |
댓글