Row, Col = 5, 5
goldMaze = [[1, 4, 4, 2, 2], [1, 3, 3, 0, 5], [1, 2, 4, 3, 0], [3, 3, 0, 4, 2], [1, 3, 4, 5, 3]]
def growRich() :
memo = [[0 for _ in range(Col)] for _ in range(Row)]
memo[0][0] = goldMaze[0][0]
rowSum = memo[0][0]
for i in range(1, Row):
rowSum += goldMaze[0][i]
memo[0][i] = rowSum
colSum = memo[0][0]
for i in range(1, Col):
colSum += goldMaze[i][0]
memo[i][0] = colSum
for row in range(1, Row):
for col in range(1, Col):
if (memo[row][col-1]>memo[row-1][col]):
memo[row][col] = memo[row][col-1]+goldMaze[row][col]
else:
memo[row][col] = memo[row-1][col]+goldMaze[row][col]
return memo[Row-1][Col-1]
print(growRich())
Row, Col = 5, 5
goldMaze = [[1, 4, 4, 2, 2], [1, 3, 3, 0, 5], [1, 2, 4, 3, 0], [3, 3, 0, 4, 2], [1, 3, 4, 5, 3]]
def growRich() :
memo = [[0 for _ in range(Col)] for _ in range(Row)]
memo[0][0] = goldMaze[0][0]
rowSum = memo[0][0]
for i in range(1, Row):
rowSum += goldMaze[0][i]
memo[0][i] = rowSum
colSum = memo[0][0]
for i in range(1, Col):
colSum += goldMaze[i][0]
memo[i][0] = colSum
for row in range(1, Row):
for col in range(1, Col):
if (memo[row][col-1]<memo[row-1][col]):
memo[row][col] = memo[row][col-1]+goldMaze[row][col]
else:
memo[row][col] = memo[row-1][col]+goldMaze[row][col]
return memo[Row-1][Col-1]
print(growRich())
Row, Col = 5, 5
goldMaze = [[1, 4, 4, 2, 2], [1, 3, 3, 0, 5], [1, 2, 4, 3, 0], [3, 3, 0, 4, 2], [1, 3, 4, 5, 3]]
def printMaze(arr):
for i in range(Row):
for k in range(Col):
print("%3d" % arr[i][k], end = ' ')
print()
print()
def growRich():
memo = [[0 for _ in range(Col)] for _ in range(Row)]
memo[0][0] = goldMaze[0][0]
colSum = memo[0][0]
for i in range(1, Col):
colSum +=goldMaze[i][0]
memo[i][0] = colSum
rowSum = memo[0][0]
for i in range(1, Row):
rowSum += goldMaze[0][i]
memo[0][i] = rowSum
for row in range(1, Row):
for col in range(1, len(goldMaze[row])) :
if (memo[row][col-1]>memo[row-1][col]):
memo[row][col]= memo[row][col-1]+goldMaze[row][col]
else:
memo[row][col] = memo[row-1][col] + goldMaze[row][col]
retValue = memo[Row-1][Col-1]
print("##메모이제이션##")
printMaze(memo)
row, col = Row-1, Col-1
memo[row][col] = 0
while row != 0 or col !=0 :
if row-1>=0 and col-1>=0 :
if memo[row-1][col]>memo[row][col-1]:
row -= 1
else:
col -=1
elif row-1 <0 and col -1 >= 0 :
col -=1
else:
row -=1
memo[row][col]=0
print("## 메모이제이션 황금미로길 ##")
printMaze(memo)
return retValue
print(growRich())