Initial commit with days 1 to 4.

This commit is contained in:
2024-12-05 20:07:44 +10:00
commit ed88e9b868
4 changed files with 299 additions and 0 deletions

32
day1/solver.py Normal file
View File

@@ -0,0 +1,32 @@
from collections import defaultdict
def part1():
first, second = read_ids()
distance = sum(abs(id1 - id2) for id1, id2 in zip(first, second))
print(f"Total distance is: {distance}")
def part2():
first, second = read_ids()
# Make freqmap for second list
freq = defaultdict(int)
for id in second:
freq[id] += 1
# Sum first list weighted by freqmap
similarity = sum(freq[id] * id for id in first)
print(f"Similarity is {similarity}")
def read_ids():
idlist = []
with open("id-list") as f:
for line in f:
if line:
idlist.append(map(int, line.split()))
return map(sorted, zip(*idlist))
if __name__ == '__main__':
part1()
part2()