-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfrequency.py
More file actions
39 lines (29 loc) · 1.06 KB
/
frequency.py
File metadata and controls
39 lines (29 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import fire
class frequency(object):
def __init__(self, frequency=None):
lines = None
if frequency:
self.frequencies = frequency
else:
with open("./frequency_input.txt", 'r') as f:
lines = f.readlines()
self.frequencies = map(int, lines)
def total(self):
# https://adventofcode.com/2018/day/1#part1
print(sum(self.frequencies))
def first_frequency_reached_twice(self):
# https://adventofcode.com/2018/day/1#part2
total_list = set([0])
total = 0
while True:
for line in self.frequencies:
total += line
if total in total_list:
print ("{} {} {}".format("*"*10, total, "*"*10))
return
total_list.add(total)
if __name__ == "__main__":
fire.Fire(frequency([+3, +3, +4, -2, -4]))
fire.Fire(frequency([-6, +3, +8, +5, -6]))
fire.Fire(frequency([+7, +7, -2, -7, -4]))
fire.Fire(frequency())