diff --git a/day08.ua b/day08.ua new file mode 100644 index 0000000..4698509 --- /dev/null +++ b/day08.ua @@ -0,0 +1,56 @@ +$ RL +$ +$ AAA = (BBB, CCC) +$ BBB = (DDD, EEE) +$ CCC = (ZZZ, GGG) +$ DDD = (DDD, DDD) +$ EEE = (EEE, EEE) +$ GGG = (GGG, GGG) +$ ZZZ = (ZZZ, ZZZ) +TestInput ← + +$ LLR +$ +$ AAA = (BBB, BBB) +$ BBB = (AAA, ZZZ) +$ ZZZ = (ZZZ, ZZZ) +TestInputII ← + +$ LR +$ +$ 11A = (11B, XXX) +$ 11B = (XXX, 11Z) +$ 11Z = (11B, XXX) +$ 22A = (22B, XXX) +$ 22B = (22C, 22C) +$ 22C = (22Z, 22Z) +$ 22Z = (22B, 22B) +$ XXX = (XXX, XXX) +TestInputIII ← + +ParseI ← ( + ⊓⊢≡(°[⊙⊙∘]≡°□↘1⊢regex"(.{3}) = \\((.{3}), (.{3})\\)")∩≡°□⊃↙↘1⊜□≠@\n. + ⊙⊙⊙⊟⊃(∘|°⊟⊗"AAA"_"ZZZ"⋅∘|⊗:⋅⊙∘|⊗:⋅⊙⋅∘) +) + +ParseII ← ( + ⊓⊢≡(°[⊙⊙∘]≡°□↘1⊢regex"(.{3}) = \\((.{3}), (.{3})\\)")∩≡°□⊃↙↘1⊜□≠@\n. + ⊙⊙⊙⊟⊃(∘|°⊟≡(⊚⌕)"AZ"¤≡(⊢⇌)⋅∘|⊗:⋅⊙∘|⊗:⋅⊙⋅∘) +) + +PartI ← ⊙⋅⋅⋅;⍢⊃( + +1 +| ⋅∘ +| ⊡⊟⊗⊙"LR"⊡◿⧻,⊙⊙⊙⋅∘ +| ⋅⋅⋅⊙∘ +)(¬∊⋅⋅⊙∘) 0 + +Lcm ← ×÷⊃(+⍢⊃◿∘(≠0×)⊃↧↥|⊙∘) +PartII ← /Lcm≡(PartI)¤⊙⊙∩¤ + +PartI ParseI TestInput +PartI ParseI TestInputII +PartII ParseII TestInputIII + +PartI ParseI &fras "day08.in" +PartII ParseII &fras "day08.in"