about summary refs log tree commit diff
path: root/users/sterni/exercises/aoc/2022/05/5.bqn
blob: bca18c1f63c236fcfa354ed1d644a1ab0ff13073 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
⟨ReadDec, SplitOn, IsAsciiNum⟩ ← •Import "../../lib.bqn"
rs‿rc ← (<"") SplitOn •FLines "../05/input"

stacks ← {
  count ← '0'-˜⊑⌽' ' (≠/⊢) ⊑⌽rs
  spec ← 0<(-1)↓(-1)⌽∾(∾⟜0‿0‿0)¨1+↕count
  ' ' (≠/⊢)¨⥊⋈˘⍉>spec⊸/¨(-1)↓rs
}

cmds ← {0‿1‿1-˜ ReadDec¨ ((∧´IsAsciiNum)¨/⊢) (<' ') SplitOn 𝕩}¨ rc

_ApplyCmd ← {
  s Fn _self c‿f‿t :
  m‿k ← 2↑ c ((≤⟜(↕≠))⊔⊢) f⊑s
  (Fn m)⊸∾⌾(t⊸⊑) k˙⌾(f⊸⊑) s
}

•Out "day05.1: "∾⊑¨stacks ⌽_ApplyCmd˜´ ⌽ cmds
•Out "day05.2: "∾⊑¨stacks ⊢_ApplyCmd˜´ ⌽ cmds