This commit is contained in:
Lauri Jesmin
2023-12-05 16:11:17 +02:00
parent d6553eb4ac
commit 190d3a87e2

87
5/advent_2.py Executable file
View File

@@ -0,0 +1,87 @@
#!/usr/bin/env python3
from dataclasses import dataclass
import re
import sys
@dataclass
class Range:
target: int
source: int
length: int
@dataclass
class SR:
source: int
length: int
def findmapping(sr,tables):
if len(tables) == 0:
return
table = tables.pop(0)
for row in table:
if sr.source > row.
print(sr)
with open("data.txt") as file:
lines = [line.rstrip() for line in file]
tables = []
table = []
seeds = []
seedranges = []
for line in lines:
if line == '':
print('Tühi rida')
continue
if line.startswith("seeds: "):
temp = re.findall(r'\d+', line)
seeds = list(map(int, temp))
print(len(seeds))
for i in range(0, int(len(seeds)/2)):
seedranges.append(SR(seeds[i*2], seeds[i*2+1]))
print(seedranges)
continue
if line[0].isalpha():
if len(table) > 0:
tables.append(table)
table = []
continue
temp = re.findall(r'\d+', line)
tableitems = list(map(int, temp))
table.append(Range(*tableitems))
tables.append(table)
for table in tables:
print("tabel")
for rida in table:
print(rida)
pisim = 0
for sr in seedranges:
findmapping(sr,tables)
for table in tables:
muudetud = False
print("tabel")
for mapping in table:
if arv >= mapping.source and arv < (mapping.source + mapping.length):
print(mapping)
arv = mapping.target + (arv - mapping.source)
print(f"Uus arv: {arv}")
break
print(f"Vastus: {arv}")
if pisim == 0:
pisim = arv
if pisim > arv:
pisim = arv
print(pisim)