From 10b76d0ca6516c41533271252dc4acbf3b8801d6 Mon Sep 17 00:00:00 2001 From: MitchellHansen Date: Fri, 17 Feb 2017 23:49:48 -0800 Subject: [PATCH] 3 more problems --- problem_18.py | 39 +++++++++++++++++++++++++++++++++++++++ problem_19.py | 31 +++++++++++++++++++++++++++++++ problem_20.py | 13 +++++++++++++ problem_21.py | 5 +++++ 4 files changed, 88 insertions(+) create mode 100644 problem_19.py create mode 100644 problem_20.py create mode 100644 problem_21.py diff --git a/problem_18.py b/problem_18.py index e69de29..adcf926 100644 --- a/problem_18.py +++ b/problem_18.py @@ -0,0 +1,39 @@ +grid = [ + [75], + [95,64], + [17,47,82], + [18,35,87,10], + [20, 4,82,47,65], + [19, 1,23,75, 3,34], + [88, 2,77,73, 7,63,67], + [99,65, 4,28, 6,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, 4,68,89,53,67,30,73,16,69,87,40,31], + [ 4,62,98,27,23, 9,70,98,73,93,38,53,60, 4,23]] + +highest_sum = 0 + +# take the current number index at grid slice +# call into the index, and then the index + 1 on the next grid slice + +def recursive_solver(index, level): + + if level == len(grid)-1: + return grid[level][index] + + else: + val1 = recursive_solver(index, level + 1) + grid[level][index] + val2 = recursive_solver(index + 1, level + 1) + grid[level][index] + + if val1 > val2: + return val1 + else: + return val2 + + + +print(recursive_solver(0, 0)) \ No newline at end of file diff --git a/problem_19.py b/problem_19.py new file mode 100644 index 0000000..a58d99a --- /dev/null +++ b/problem_19.py @@ -0,0 +1,31 @@ +import time +from time import gmtime, strftime, struct_time +from datetime import date, datetime, timedelta +import datetime +import re + + +d = datetime.datetime(1901,1,1,0,0,0).timetuple() + +print(strftime("%a, %d %b %Y %H:%M:%S +0000", d)) + + + +def datespan(startDate, endDate, delta=timedelta(weeks=1)): + currentDate = startDate + while currentDate < endDate: + yield currentDate + currentDate += delta + +span = datespan(date(1901, 1, 1), date(2000, 12, 31)) + +days = 0; + +for i in span: + split = str(i).split('-') + day = int(split[2]) + + if day == 1: + days += 1 + +print(days) \ No newline at end of file diff --git a/problem_20.py b/problem_20.py new file mode 100644 index 0000000..cdb6ef8 --- /dev/null +++ b/problem_20.py @@ -0,0 +1,13 @@ + +import math + +value = math.factorial(100) + +string = str(value) + +sum = 0 + +for i in string: + sum += int(i) + +print(sum) \ No newline at end of file diff --git a/problem_21.py b/problem_21.py new file mode 100644 index 0000000..3d2ba56 --- /dev/null +++ b/problem_21.py @@ -0,0 +1,5 @@ +import math + + + +count_array \ No newline at end of file