From 4b183d52a9f492b08128a6eb353e53f5300134b0 Mon Sep 17 00:00:00 2001 From: Lauri Jesmin Date: Fri, 8 Dec 2023 22:02:21 +0200 Subject: [PATCH] pooleli --- 8/advent_2.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 8/advent_2.py diff --git a/8/advent_2.py b/8/advent_2.py new file mode 100644 index 0000000..e44533b --- /dev/null +++ b/8/advent_2.py @@ -0,0 +1,68 @@ +#!/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)