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