Files
Advent2023/8/advent_2.py
Lauri Jesmin 4b183d52a9 pooleli
2023-12-08 22:02:21 +02:00

69 lines
1.4 KiB
Python

#!/usr/bin/env python3.12
import re
class RL:
def __init__(self, L, R):
self.directions = {}
self.directions['R'] = R
self.directions['L'] = L
def get(self, direction):
return self.directions[direction]
def __str__(self):
return f"L: {self.get('L')} R: {self.get('R')}"
with open("data2.txt") as file:
lines = [line.rstrip() for line in file]
x = 0
maps = {}
algused = []
for line in lines:
print(line)
if x == 0:
instructions = line
x += 1
continue
if line == '':
print('Tühi rida')
continue
temp = re.findall(r'\w+', line)
z = list(temp)
maps[z[0]] = RL(z[1], z[2])
if z[0][2] == 'A':
print(f"Lisan alguse {z[0]}")
algused.append(z[0])
print(instructions)
print(algused)
teemeveel = True
x = 0
while teemeveel:
# print(f"Samm {instructions[x % len(instructions)]} {instructions} {x}")
# if x % (len(instructions)*100) == 0:
# print(x)
for idx, vastus in enumerate(algused):
# print(algused[idx])
algused[idx] = maps[vastus].get(instructions[x % len(instructions)])
# print(algused[idx])
# print(f"Samm {x}")
for i in algused:
teemeveel = False
# print(f"I on {i}")
if i[2] != 'Z':
# print('Edasi on vaja teha')
teemeveel = True
break
# print(teemeveel)
x += 1
print(x)