mirror of
https://github.com/jlengrand/project_euler.git
synced 2026-03-10 08:41:20 +00:00
Starts Problem 18. Dijkstra problem now :)
This commit is contained in:
59
e_18.py
59
e_18.py
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user