Day 1 challenge
This commit is contained in:
parent
25cbed8b41
commit
1428bb14dc
41
day1/day1.py
Normal file
41
day1/day1.py
Normal file
@ -0,0 +1,41 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
|
||||
def calculate_fuel_iterative(mass):
|
||||
total = 0
|
||||
new_mass = mass
|
||||
while True:
|
||||
new_mass = new_mass // 3 - 2
|
||||
if new_mass < 0:
|
||||
break
|
||||
total += new_mass
|
||||
return total
|
||||
|
||||
|
||||
def calculate_total_fuel_mass(input_file, mass_function=lambda x: x // 3 - 2):
|
||||
total = 0
|
||||
with open(input_file) as masses:
|
||||
for mass in masses:
|
||||
total += mass_function(int(mass))
|
||||
return total
|
||||
|
||||
|
||||
def test_part2():
|
||||
inputs = (14, 1969, 100756)
|
||||
expected = (2, 966, 50346)
|
||||
for i, inp in enumerate(inputs):
|
||||
result = calculate_fuel_iterative(inp)
|
||||
assert result == expected[i], "Result for {} should be {}, was {}".format(
|
||||
inp, expected[i], result
|
||||
)
|
||||
print("All tests passed for part 2.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("Part 1 - total mass: ", calculate_total_fuel_mass("./input.txt"))
|
||||
|
||||
test_part2()
|
||||
print(
|
||||
"Part 2 -- total mass: ",
|
||||
calculate_total_fuel_mass("./input.txt", calculate_fuel_iterative),
|
||||
)
|
100
day1/input.txt
Normal file
100
day1/input.txt
Normal file
@ -0,0 +1,100 @@
|
||||
62259
|
||||
75368
|
||||
93740
|
||||
119724
|
||||
112546
|
||||
137714
|
||||
96999
|
||||
130673
|
||||
102398
|
||||
73819
|
||||
100734
|
||||
85337
|
||||
62764
|
||||
82115
|
||||
127696
|
||||
54391
|
||||
103213
|
||||
77954
|
||||
112513
|
||||
112392
|
||||
138404
|
||||
92989
|
||||
108521
|
||||
83163
|
||||
109720
|
||||
91918
|
||||
114443
|
||||
54306
|
||||
90623
|
||||
66833
|
||||
58505
|
||||
85919
|
||||
77539
|
||||
149419
|
||||
128385
|
||||
66452
|
||||
94677
|
||||
109179
|
||||
62072
|
||||
137245
|
||||
136226
|
||||
145783
|
||||
60689
|
||||
103320
|
||||
145931
|
||||
101286
|
||||
63458
|
||||
122468
|
||||
87858
|
||||
105675
|
||||
146185
|
||||
57417
|
||||
96883
|
||||
70739
|
||||
97494
|
||||
140951
|
||||
149416
|
||||
83137
|
||||
66122
|
||||
134319
|
||||
58511
|
||||
139600
|
||||
102929
|
||||
112240
|
||||
149634
|
||||
64142
|
||||
83332
|
||||
129526
|
||||
99058
|
||||
148889
|
||||
50087
|
||||
74961
|
||||
133606
|
||||
143518
|
||||
68849
|
||||
97045
|
||||
73920
|
||||
61357
|
||||
115941
|
||||
56740
|
||||
111773
|
||||
77880
|
||||
90792
|
||||
77103
|
||||
111355
|
||||
125898
|
||||
56547
|
||||
84918
|
||||
113822
|
||||
74113
|
||||
98557
|
||||
80928
|
||||
60519
|
||||
146379
|
||||
59354
|
||||
102490
|
||||
72584
|
||||
59000
|
||||
63151
|
||||
114253
|
Loading…
Reference in New Issue
Block a user