add: part 2

This commit is contained in:
starnakin 2023-12-08 10:21:20 +01:00
parent ca39de9040
commit 222eff07d2
2 changed files with 46 additions and 0 deletions

10
2023/day08/example3.txt Normal file
View File

@ -0,0 +1,10 @@
LR
11A = (11B, XXX)
11B = (XXX, 11Z)
11Z = (11B, XXX)
22A = (22B, XXX)
22B = (22C, 22C)
22C = (22Z, 22Z)
22Z = (22B, 22B)
XXX = (XXX, XXX)

36
2023/day08/src/part2.py Normal file
View File

@ -0,0 +1,36 @@
import math
text: str = open("input.txt", "r").read()
_value: int = 0
lines = text.splitlines()
deplacements = lines[0]
ground = {}
starts = []
for line in lines[2:]:
data = line.split(" = ")
if (data[0][2] == 'A'):
starts.append(data[0])
data[1] = data[1][1:9]
ground.update({data[0]: data[1].split(", ")})
def resolve(ground: dict, deplacements: str, start: str):
nb_deplacement = 0
pos = start
while True:
for deplacement in deplacements:
if (pos[2] == "Z"):
return (nb_deplacement)
nb_deplacement += 1
pos = ground.get(pos)[deplacement == "R"]
lst = []
for start in starts:
lst.append(resolve(ground, deplacements, start))
_value = math.lcm(*lst)
print(_value)