Algorithm/ProjectEuler
[ProjectEuler] 프로젝트 오일러 Problem 18
HAS3ONG
2019. 7. 10. 15:26
Field = [
['75'],
['95', '64'],
['17', '47', '82'],
['18', '35', '87', '10'],
['20', '04', '82', '47', '65'],
['19', '01', '23', '75', '03', '34'],
['88', '02', '77', '73', '07', '63', '67'],
['99', '65', '04', '28', '06', '16', '70', '92'],
['41', '41', '26', '56', '83', '40', '80', '70', '33'],
['41', '48', '72', '33', '47', '32', '37', '16', '94', '29'],
['53', '71', '44', '65', '25', '43', '91', '52', '97', '51', '14'],
['70', '11', '33', '28', '77', '73', '17', '78', '39', '68', '17', '57'],
['91', '71', '52', '38', '17', '14', '91', '43', '58', '50', '27', '29', '48'],
['63', '66', '04', '68', '89', '53', '67', '30', '73', '16', '69', '87', '40', '31'],
['04', '62', '98', '27', '23', '09', '70', '98', '73', '93', '38', '53', '60', '04', '23'],
]
dp = [[75]]
for i in range(1, 15):
arr = []
for j in range(i+1):
if j == 0:
arr.append(dp[i-1][j] + int(Field[i][j]))
elif j == i:
arr.append(dp[i-1][j-1] + int(Field[i][j]))
else:
arr.append(max(dp[i-1][j-1] + int(Field[i][j]), dp[i-1][j] + int(Field[i][j])))
dp.append(arr)
print(max(dp[14]))
출처