63 lines
1.3 KiB
Python
63 lines
1.3 KiB
Python
|
import time
|
||
|
|
||
|
with open("input_day8.txt") as file:
|
||
|
lines = [line.rstrip() for line in file]
|
||
|
|
||
|
#unused bc i am so cool
|
||
|
class seq:
|
||
|
def __init__(self,name,left,right):
|
||
|
self.name = name
|
||
|
self.left = left
|
||
|
self.right = right
|
||
|
|
||
|
|
||
|
turns = lines[0]
|
||
|
sequences = lines[2:]
|
||
|
|
||
|
left_dict = {}
|
||
|
right_dict = {}
|
||
|
cur_names = []
|
||
|
for a in sequences:
|
||
|
name = a.split(" ")[0]
|
||
|
left = a.split(" ")[2][1:4]
|
||
|
right = a.split(" ")[3][0:3]
|
||
|
|
||
|
left_dict[name] = left
|
||
|
right_dict[name] = right
|
||
|
|
||
|
if name[2] == "A":
|
||
|
cur_names.append(name)
|
||
|
|
||
|
i = 0
|
||
|
total = 0
|
||
|
print(cur_names)
|
||
|
|
||
|
alive = True
|
||
|
while alive:
|
||
|
count = 0
|
||
|
for j in range(len(cur_names)):
|
||
|
if cur_names[j][2] == 'Z':
|
||
|
count+=1
|
||
|
#print(cur_names[j])
|
||
|
#time.sleep(2)
|
||
|
if count==6:
|
||
|
alive = False
|
||
|
else:
|
||
|
|
||
|
for b in range(len(cur_names)):
|
||
|
if turns[i] == 'L':
|
||
|
|
||
|
#print(f"next {left_dict[cur_names[b]]}")
|
||
|
next_node_name = left_dict[cur_names[b]]
|
||
|
else:
|
||
|
next_node_name = right_dict[cur_names[b]]
|
||
|
|
||
|
cur_names[b] = next_node_name
|
||
|
#time.sleep(1)
|
||
|
|
||
|
i+=1
|
||
|
if i>=len(turns):
|
||
|
i = 0
|
||
|
total+=1
|
||
|
|
||
|
print(total)
|