diff options
author | Jack Sangdahl <[email protected]> | 2024-06-15 22:20:32 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2024-06-15 22:20:32 -0600 |
commit | 8e313e2614c7a0fe5af924febdbacc650e33835e (patch) | |
tree | 63426b6942ceebe17708140c972a7d7451bd2f74 /14_2021.py | |
download | aoc-8e313e2614c7a0fe5af924febdbacc650e33835e.tar.gz aoc-8e313e2614c7a0fe5af924febdbacc650e33835e.zip |
intial
Diffstat (limited to '14_2021.py')
-rw-r--r-- | 14_2021.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/14_2021.py b/14_2021.py new file mode 100644 index 0000000..d7a1d64 --- /dev/null +++ b/14_2021.py @@ -0,0 +1,27 @@ +import sys +from collections import Counter + +infile = sys.argv[1] if len(sys.argv) > 1 else "day14data.txt" +S, rules = open(infile).read().split("\n\n") +R = {} + +for line in rules.strip().split("\n"): + start, end = line.strip().split(" -> ") + R[start] = end + +C1 = Counter() +for i in range(len(S) - 1): + C1[S[i] + S[i + 1]] += 1 + +for t in range(41): + if t in [10, 40]: + CF = Counter() + for k in C1: + CF[k[0]] += C1[k] + CF[S[-1]] += 1 + print(max(CF.values()) - min(CF.values())) + C2 = Counter() + for k in C1: + C2[k[0] + R[k]] += C1[k] + C2[R[k] + k[1]] += C1[k] + C1 = C2 |