From 6a4ae2dd99ff11f3629386788c5f8525b563c81f Mon Sep 17 00:00:00 2001 From: Dimitri Lozeve Date: Sat, 7 Dec 2024 12:26:38 +0100 Subject: [PATCH] 2024 day 6 optim --- 2024/day06/day06.bqn | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/2024/day06/day06.bqn b/2024/day06/day06.bqn index 400aeb1..4195abc 100644 --- a/2024/day06/day06.bqn +++ b/2024/day06/day06.bqn @@ -1,15 +1,16 @@ in←>•FLines"input" map←'#'=in -i‿j←⊑¨/¨(∨´˘⋈∨˝)'^'=in +i‿j←⊑/○⥊⟜(↕≢)'^'=in -Move←{𝕊map‿i‿j‿v: +Move←{𝕊map‿i‿j‿v‿k: p←⌽/i↑j⊏˘map newi←{0<≠p ? 1+⊑p ; ¯1} v↩1¨⌾((∾⟜j¨1+newi+↕i-newi)⊸⊑)v - ⟨⌽∘⍉map,(≠map)-j+1,newi,⌽∘⍉v⟩ + ⟨⌽∘⍉map,(≠map)-j+1,newi,⌽∘⍉v,k+1⟩ } -•Show +´⥊3⊑Move•_while_(0≤2⊸⊑)⟨map,i,j,(≢map)⥊0⟩ +≠·‿·‿·‿v‿k←Move•_while_(0≤2⊸⊑)⟨map,i,j,(≢map)⥊0,0⟩ +•Show +´⥊v -candidates←≢⟜i‿j¨⊸/⥊↕≢map -Stop←{𝕊map‿i‿j‿v: ((i‿j⊑v)∧(¬⟨i-1,j⟩⊑v)∨(¬⟨i+1,j⟩⊑v))∨j<0} -•Show +´{0≤2⊑Move•_while_(¬Stop)⟨1⌾(𝕩⊸⊑)map,i,j,(≢map)⥊0⟩}¨candidates +cs←>/○⥊⟜(↕≢)⌽∘⍉⁼⍟k v +Stop←{𝕊map‿i‿j‿v‿k: ((i‿j⊑v)∧(¬⟨i-1,j⟩⊑v)∨(¬⟨i+1,j⟩⊑v))∨j<0} +•Show +´{0≤2⊑Move•_while_(¬Stop)⟨1⌾(𝕩⊸⊑)map,i,j,(≢map)⥊0,0⟩}˘cs