add: part 2
This commit is contained in:
parent
ca39de9040
commit
222eff07d2
10
2023/day08/example3.txt
Normal file
10
2023/day08/example3.txt
Normal 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
36
2023/day08/src/part2.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user