add 2024/day1-day5 python
This commit is contained in:
parent
6c64d1b62e
commit
7c4e98ebcf
5 changed files with 360 additions and 0 deletions
51
2024/01/main.py
Executable file
51
2024/01/main.py
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8; py-indent-offset: 4 -*-
|
||||
|
||||
# Author: Sebastian Mark
|
||||
# CC-BY-SA (https://creativecommons.org/licenses/by-sa/4.0/deed.de)
|
||||
|
||||
# pylint: disable=missing-module-docstring,missing-function-docstring,consider-using-f-string
|
||||
|
||||
|
||||
def readinput() -> (list[int], list[int]):
|
||||
a = []
|
||||
b = []
|
||||
with open("input", "r", encoding="utf-8") as file:
|
||||
for line in file:
|
||||
num1, num2 = map(int, line.split())
|
||||
a.append(num1)
|
||||
b.append(num2)
|
||||
return a, b
|
||||
|
||||
|
||||
def distance(list_a: list[int], list_b: list[int]) -> int:
|
||||
list_a.sort()
|
||||
list_b.sort()
|
||||
|
||||
dist = 0
|
||||
for a_val, b_val in zip(list_a, list_b):
|
||||
dist += abs(a_val - b_val)
|
||||
|
||||
return dist
|
||||
|
||||
|
||||
def similarity(list_a: list[int], list_b: list[int]) -> int:
|
||||
sim = 0
|
||||
for a_val in list_a:
|
||||
sim += a_val * list_b.count(a_val)
|
||||
|
||||
return sim
|
||||
|
||||
|
||||
def main():
|
||||
list_a, list_b = readinput()
|
||||
|
||||
# part1
|
||||
print("Distance: %d" % distance(list_a, list_b))
|
||||
|
||||
# part 2
|
||||
print("Similarity: %d" % similarity(list_a, list_b))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue