Starts Problem 18. Dijkstra problem now :)

This commit is contained in:
Julien Lengrand-Lambert
2012-01-17 17:28:07 +01:00
parent 391628ad0e
commit 0020257412

59
e_18.py
View File

@@ -5,36 +5,53 @@
#Created on : Mon Jan 16 15:34:46 CET 2012
#
# DESCRIPTION : Solves problem 18 of Project Euler
By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23.
By starting at the top of the triangle below and moving to adjacent numbers on
the row below, the maximum total from top to bottom is 23.
3
7 4
2 4 6
8 5 9 3
That is, 3 + 7 + 4 + 9 = 23.
Find the maximum total from top to bottom of the triangle below:
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
Find the maximum total from top to bottom of the triangle saved in e_18.data
##---
"""
def fun():
import itertools
def longest_path(filename):
"""
"""
Returns the maximum total top from bottom of the triangle saved in filename
"""
data = load_triangle(filename)
reference = []
reference.extend(data)
values = list(itertools.chain(*data))
values.sort() # we loose non sorted variable
sort_val = list(set(values))
reverse_val = []
reverse_val.extend(sort_val)
reverse_val.reverse()
print sort_val
print reverse_val
print reference
return 1
def load_triangle(filename):
"""
Returns a list of lists from triangle given in filename
"""
data = []
file = open(filename, "r")
for line in file :
data.append([int(el) for el in line.split(" " ) ])
file.close()
return data
if __name__ == '__main__':
print "Answer : %d" % (fun())
print "Answer : %d" % (longest_path("e_18.data"))