57 lines
1.2 KiB
Python
57 lines
1.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# day 5 - Advent of Code 2023
|
||
|
# part 1
|
||
|
|
||
|
import numpy as np
|
||
|
import pandas as pd
|
||
|
|
||
|
with open("data/sample.txt", "r") as f:
|
||
|
data = f.read()
|
||
|
|
||
|
parts = data.split("\n\n")
|
||
|
|
||
|
seeds = parts[0]
|
||
|
seeds = seeds.split(": ")[1].split()
|
||
|
seeds = list(map(int, seeds))
|
||
|
|
||
|
maps = [
|
||
|
[
|
||
|
[int(item) for item in values.split()]
|
||
|
for values in themap.split("\n")[1:]
|
||
|
if values != ""
|
||
|
]
|
||
|
for themap in parts[1:]
|
||
|
]
|
||
|
|
||
|
|
||
|
def recursive_min_descent(seed, maps):
|
||
|
current = seed
|
||
|
for submap in maps:
|
||
|
for indication in submap:
|
||
|
destination, source, size = indication
|
||
|
return current
|
||
|
|
||
|
|
||
|
"""
|
||
|
soils = list(map(lambda seed: descent(seed, maps), seeds))
|
||
|
|
||
|
seeds = range(0, 99)
|
||
|
|
||
|
df = pd.DataFrame(
|
||
|
dict(seed=seeds, soil=list(map(lambda seed: descent(seed, maps), seeds)))
|
||
|
)
|
||
|
|
||
|
"""
|
||
|
# Check that no map indication overlaps
|
||
|
for submap in maps:
|
||
|
for indication1 in submap:
|
||
|
_, start1, range1 = indication1
|
||
|
for indication2 in submap:
|
||
|
if indication1 == indication2:
|
||
|
continue
|
||
|
_, start2, range2 = indication2
|
||
|
if not (start2 > start1 + range1 or start1 > start2 + range2):
|
||
|
print("overlap")
|
||
|
|
||
|
print(df)
|