-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDay01.py
More file actions
27 lines (18 loc) · 764 Bytes
/
Day01.py
File metadata and controls
27 lines (18 loc) · 764 Bytes
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
def readin_data(path : str) -> list[(str,str)]:
with open(path, 'r') as f:
rows = [line.rstrip('\n').split(',') for line in f]
return ([int(x[0]) for x in rows], [int(x[1]) for x in rows])
def calculate_distance(listA : list[str], listB: list[str]) -> int:
sum = 0
for a,b in zip(listA, listB):
sum += abs(a-b)
return sum
def calculate_similarity(listA : list[str], listB: list[str]) -> int:
similarity = 0
for a in listA:
similarity += a * listB.count(a)
return similarity
if __name__ == '__main__':
listA, listB = readin_data('Input/Day01.csv')
print(f'Distance is {calculate_distance(sorted(listA), sorted(listB))}.')
print(f'Similarity is {calculate_similarity(listA, listB)}.')