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)
|