Add functional solution to part 2 day 1

This commit is contained in:
Nick Krichevsky 2019-12-01 00:44:21 -05:00
parent 6bb9f89a4b
commit 6fbf7f20b1

View file

@ -1,4 +1,5 @@
#!/usr/bin/env python3
import functools
def part1():
@ -20,6 +21,25 @@ def part2():
print(total)
# Somewhat of a weird solution, but by combining reduce with a recursive solution, we can get the correct answer :)
def part2_alternate():
input_file = open('input.txt', 'r')
def reducer(total, cost):
next_cost = cost//3 - 2
if next_cost <= 0:
# If the next cost is less than or equal to zero, the current cost we have is the total cost
return total
return total + reducer(next_cost, next_cost)
total = functools.reduce(reducer, (int(line) for line in input_file), 0)
print(total)
input_file.close()
if __name__ == '__main__':
part1()
part2()
part2_alternate()