# file from https://projecteuler.net/project/resources/p067_triangle.txt triangle_str = File.open("p067_triangle.txt").read triangle = triangle_str.split("\n").map do |l| l.split(" ").map do |s| s.to_i end end (triangle.length - 2).downto(0).each do |l| line = triangle[l] line.each_with_index do |cell, c| nextA = triangle[l + 1][c] nextB = triangle[l + 1][c + 1] triangle[l][c] = cell + [nextA, nextB].max end end puts triangle[0][0]