Last updated 1 year ago
Was this helpful?
Iterative solution:
Recursive solution:
var sum = [0] ARGF.each { |line| var x = line.words.map{.to_n} sum = [ x.first + sum.first, {|i| x[i] + [sum[i-1, i]].max }.map(1 ..^ x.end)... x.last + sum.last, ] } say sum.max
var triangle = ARGF.slurp.lines.map{.words.map{.to_n}} func max_value(i=0, j=0) is cached { i == triangle.len && return 0 triangle[i][j] + [max_value(i+1, j), max_value(i+1, j+1)].max } say max_value()
% sidef maxpath.sf triangle.txt 1320