diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2023-12-08 14:40:42 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2023-12-08 14:40:42 +0100 |
commit | 0dc456e1a476090ff8726d9a276054f226e31486 (patch) | |
tree | 27f4c3036f29cb6f84814fbf50ac4ff19838f45b /prog/aoc/23/8/1.py | |
parent | aoc7 (diff) | |
download | r-0dc456e1a476090ff8726d9a276054f226e31486.tar r-0dc456e1a476090ff8726d9a276054f226e31486.tar.gz r-0dc456e1a476090ff8726d9a276054f226e31486.tar.bz2 r-0dc456e1a476090ff8726d9a276054f226e31486.tar.lz r-0dc456e1a476090ff8726d9a276054f226e31486.tar.xz r-0dc456e1a476090ff8726d9a276054f226e31486.tar.zst r-0dc456e1a476090ff8726d9a276054f226e31486.zip |
Diffstat (limited to 'prog/aoc/23/8/1.py')
-rwxr-xr-x | prog/aoc/23/8/1.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/prog/aoc/23/8/1.py b/prog/aoc/23/8/1.py new file mode 100755 index 0000000..9ff0113 --- /dev/null +++ b/prog/aoc/23/8/1.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +inst = input() +input() +graph = {} +try: + while True: + a = input().split(" = ") + graph[a[0]] = a[1].replace("(", "").replace(")", "").split(", ") +except EOFError: + pass +cur = "AAA" +runs = 0 +while True: + for d in inst: + if cur == "ZZZ": + break + if d == "L": + cur = graph[cur][0] + else: + cur = graph[cur][1] + runs += 1 + else: + continue + break +print(runs) +r = [] +for s in [x for x in graph if x[2] == "A"]: + runs = 0 + while True: + for d in inst: + if s[2] == "Z": + break + if d == "L": + s = graph[s][0] + else: + s = graph[s][1] + runs += 1 + else: + continue + break + r.append(runs) +from math import lcm +print(lcm(*r)) |