day 2, optimization

main
aprzn 1 year ago
parent 2f2f8128ad
commit 4db2ef6498

@ -4,8 +4,9 @@ $ Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
$ Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
$ Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
TestInput ←
Colors ← {"red" "green" "blue"}
# Original parsing solution
Colors ← {"red" "green" "blue"}
Parse ← (
⊔⊢⇌↘1 regex "Game (\\d+): (.*)"
⊜(□⊜(⇌⊜((parse⊔⋅∘|⊙;)<3.⊃(⊗⊙Colors|∘)□)≠@ .)≠@,.)≠@;.
@ -14,11 +15,22 @@ Parse ← (
)
)
# Somewhat optimized second take on parsing
ColorsII ← "rgb"
ParseII ← (
↘+2⊗@:.
⬚0⊜(⊕∘⍘⊟⍉∵(⊟⊃(⊗⊙ColorsII⊢|parse↘2)⇌⊔) regex "\\d+ [rgb]")≠@;.
↯¯1_3
)
PartI ← /×≤12_13_14/↥
PartII ← /×/↥
/+×+1⇡⧻.⊜(PartI Parse)≠@\n.TestInput
/+×+1⇡⧻.⊜(PartI Parse)≠@\n.&fras "day02.in"
/+×+1⇡⧻.⊜(PartI ParseII)≠@\n.TestInput
/+×+1⇡⧻.⊜(PartI ParseII)≠@\n.&fras "day02.in"
/+⊜(PartII ParseII)≠@\n.TestInput
/+⊜(PartII ParseII)≠@\n.&fras "day02.in"
/+⊜(PartII Parse)≠@\n.TestInput
/+⊜(PartII Parse)≠@\n.&fras "day02.in"
⊙⋅∘⍜now⊜(□ Parse)≠@\n.&fras "day02.in"
⊙⋅∘⍜now⊜(□ ParseII)≠@\n.&fras "day02.in"

Loading…
Cancel
Save