about summary refs log tree commit diff
path: root/day04.bqn
diff options
context:
space:
mode:
Diffstat (limited to 'day04.bqn')
-rw-r--r--day04.bqn13
1 files changed, 13 insertions, 0 deletions
diff --git a/day04.bqn b/day04.bqn
new file mode 100644
index 0000000..8f1cc04
--- /dev/null
+++ b/day04.bqn
@@ -0,0 +1,13 @@
+str←•Import"bqn-libs/strings.bqn"
+
+draws‿cards ← (⊑⋈1⊸↓) str.lf‿str.lf str.Split •FChars"day04"
+draws ↩ > •BQN¨ ',' str.Split draws
+cards ↩ >> {{•BQN¨ (⊢ /˜ (1⌊≠)¨) ' '⊸str.Split 𝕩}¨ str.lf⊸str.Split 𝕩}¨ ¯1↓cards
+
+Cross ← { ¯1+(1+𝕩)×𝕩≠𝕨 }
+Won ← { ∨´1=(×˝-𝕩)∾(×˝⍉-𝕩) }
+
+winners ← {⊐⟜1 Won¨ (<𝕩) Cross˜` draws}˘ cards
+
+•Out (⌊´winners)⊑draws×+´+˝0⌈((⊑⍋winners)⊏cards) Cross´ (1+⌊´winners)↑draws
+•Out (⌈´winners)⊑draws×+´+˝0⌈((⊑⍒winners)⊏cards) Cross´ (1+⌈´winners)↑draws