day 8 *sigh*

main
aprzn 1 year ago
parent 0b190c67a1
commit 0b04ce2c3c

@ -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"
Loading…
Cancel
Save