feat(sterni/aoc/2022): day18 BQN solution
Change-Id: I1504cd5e443ff0b28c2d97ae357e5d92c88bba4d Reviewed-on: https://cl.tvl.fyi/c/depot/+/7601 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
c9a44bfe15
commit
ba719f8f5e
3 changed files with 18 additions and 1 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
#!/usr/bin/env BQN
|
#!/usr/bin/env BQN
|
||||||
|
|
||||||
|
⟨Xor⟩ ← •Import "../lib.bqn"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Utilities
|
# Utilities
|
||||||
#
|
#
|
||||||
|
|
@ -469,7 +471,6 @@ _EnhancedPixelCount ← {+´⥊⊑ (𝕨⊸Enhance)⍟𝕗 𝕩}
|
||||||
day25Input ← ".>v" ⊐ > ReadInput 25
|
day25Input ← ".>v" ⊐ > ReadInput 25
|
||||||
day25ExampleInput ← ".>v"⊐∘‿10⥊"v...>>.vv>.vv>>.vv..>>.>v>...v>>v>>.>.v.v>v.vv.v..>.>>..v....vv..>.>v.v.v..>>v.v....v..v.>"
|
day25ExampleInput ← ".>v"⊐∘‿10⥊"v...>>.vv>.vv>>.vv..>>.>v>...v>>v>>.>.v.v>v.vv.v..>.>>..v....vv..>.>v.v.v..>>v.v....v..v.>"
|
||||||
|
|
||||||
Xor ← (¬⊸∧∨∧⟜¬)
|
|
||||||
MoveHerd ← {(𝕩∧𝕩≠𝕨)+𝕨× (𝕨=𝕩) (Xor⟜(1⊸⌽)∨⊢) (0=𝕩)∧(-1)⌽𝕨=𝕩}
|
MoveHerd ← {(𝕩∧𝕩≠𝕨)+𝕨× (𝕨=𝕩) (Xor⟜(1⊸⌽)∨⊢) (0=𝕩)∧(-1)⌽𝕨=𝕩}
|
||||||
|
|
||||||
_fixCount ← {
|
_fixCount ← {
|
||||||
|
|
|
||||||
14
users/sterni/exercises/aoc/2022/18/18.bqn
Normal file
14
users/sterni/exercises/aoc/2022/18/18.bqn
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
lib ← •Import "../../lib.bqn"
|
||||||
|
|
||||||
|
i ← (lib.ReadDec¨(<',')⊸lib.SplitOn)¨ •FLines "input"
|
||||||
|
dim ← 1+⌈´i
|
||||||
|
cubes ← i∊˜↕dim
|
||||||
|
|
||||||
|
views ← ⟨0‿1‿2, 1‿2‿0, 2‿0‿1⟩
|
||||||
|
Exposed ← {(6×+´⥊𝕩)-2×+´views{+´⥊(∧˝˘)2↕𝕨⍉𝕩}¨<𝕩}
|
||||||
|
Interior ← {(¬𝕩)∧´views{((lib.Xor`∘((∊∧⊢)∨»∘(∊⌾⌽∧⊢)))⎉1)⌾(𝕨⊸⍉)𝕩}¨<𝕩}
|
||||||
|
Displace ← {⌈´(⥊⊢‿⌽⋈⌜views){F‿a 𝕊 𝕩:((-∘¬∘(»((0⊸=⊣)∧>)⊢)⌈⊢)⎉1)⌾(F a⊸⍉)𝕩}¨<𝕩}
|
||||||
|
Exterior ← (⊢-○Exposed ¯1⊸=∘(Displace lib._fix)∘(-∘Interior+⊢))
|
||||||
|
|
||||||
|
•Out "day18.1: "∾•Fmt Exposed cubes
|
||||||
|
•Out "day18.2: "∾•Fmt Exterior cubes
|
||||||
|
|
@ -13,3 +13,5 @@ SplitAt ← ((⊣≤↕∘≠∘⊢)⊔⊢)
|
||||||
_fix ⇐ {𝕩 𝕊∘⊢⍟≢ 𝔽 𝕩}
|
_fix ⇐ {𝕩 𝕊∘⊢⍟≢ 𝔽 𝕩}
|
||||||
|
|
||||||
ImportBqnLibs ⇐ {•Import 𝕩∾˜"/"∾˜¯1↓1⊑•SH "printenv"‿"BQNLIBS"}
|
ImportBqnLibs ⇐ {•Import 𝕩∾˜"/"∾˜¯1↓1⊑•SH "printenv"‿"BQNLIBS"}
|
||||||
|
|
||||||
|
Xor ⇐ (¬⊸∧∨∧⟜¬)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue