aoc2022/aoc.bqn

76 lines
2.4 KiB
BQN
Raw Permalink Normal View History

2022-12-02 01:19:46 -05:00
# a‿b Sub x: the b-length subarray starting at a
Sub {ab𝕊𝕩:ba𝕩}
# e Split xs: split xs on occurrences of e (default 0)
2022-12-21 12:02:25 -05:00
Split {( 1¨(1)) Sub𝕩¨ (» ¨ -») /w¨𝕩w𝕨0}
2022-12-02 01:19:46 -05:00
2022-12-03 02:39:34 -05:00
# n Chunk xs: split into chunks of length n (the last one might be smaller)
Chunk {(𝕨÷˜𝕩)𝕩}
2022-12-21 12:02:25 -05:00
Day1 {( (+´3)) +´¨ •BQN1 "" Split •FLines 𝕩}
# ⟨ 72602 207410 ⟩
2022-12-02 02:41:12 -05:00
Day2 {
B (A {1+𝕩+3×3|1+𝕩-𝕨}) {3|𝕨+𝕩-1}
2022-12-04 17:52:42 -05:00
+´ (AB)´{"AX"-˜02𝕩}¨ •FLines 𝕩
2022-12-01 14:37:22 -05:00
}
# ⟨ 17189 13490 ⟩
2022-12-03 00:33:45 -05:00
2022-12-03 02:39:34 -05:00
Day3 {
2022-12-04 17:52:42 -05:00
Prio - 'Z'"`&"
2022-12-03 02:39:34 -05:00
A +´ {(Prio¨×𝕩)𝕨}´(<˘ 2)¨
B +´ {abc:(Prio¨a)×b(a)c}¨(3Chunk)(¨)
(AB) •FLines 𝕩
}
# ⟨ 7683 2488 ⟩
2022-12-04 04:03:30 -05:00
Day4 {
2022-12-04 17:52:42 -05:00
Line •BQN '‿'("-,")¨ # hehe
F {´´˘´1(32)𝕩˜𝕨-'a'}
2022-12-04 04:51:21 -05:00
A "cabddbac"F, B "cabcacda"F
2022-12-04 17:52:42 -05:00
+´ (AB)Line¨ •FLines 𝕩
2022-12-04 04:03:30 -05:00
}
# ⟨ 536 845 ⟩
2022-12-05 07:24:35 -05:00
Day5 {
inp •FLines 𝕩
Start {(𝕨=0)¨/ 𝕩}
2022-12-06 00:35:24 -05:00
stks ' '/¨ <˘> (1¨ 4Chunk)¨ '[' Start inp
2022-12-05 07:24:35 -05:00
todo •BQN1 (135 ' 'Split)¨ 'm' Start inp
_Do1 {
nst 𝕩 - 011
lr n () s𝕨
(𝔽 l)(t) r(s) 𝕨
}
_Do {¨ 𝕨𝔽_Do1˜´𝕩}, A _Do, B _Do
stks (AB) todo
}
# ⟨ "QNNTGTPFN" "GGNPJBTTR" ⟩
2022-12-06 01:07:47 -05:00
Day6 {{𝕨+ / ˘ 𝕨𝕩}(•FChars 𝕩)¨ 414}
2022-12-06 00:35:24 -05:00
# ⟨ 1929 3298 ⟩
2022-12-08 03:32:27 -05:00
Day8 {
_rots {Fx𝔽𝕩, >{F𝕏x}¨,,˘,}
A {+´ ˝ ´(>1)¨ 𝕩}
2022-12-09 06:18:58 -05:00
B {´ ×˝ {1(1-˜𝕩) (/) 𝕩}¨ 𝕩}
(AB) (¯1)˘_rots '0'-˜ >•FLines 𝕩
2022-12-08 03:32:27 -05:00
}
# ⟨ 1843 180000 ⟩
2022-12-10 03:42:22 -05:00
Day10 {
Line 0 ·•BQN 5
A (+´ 19) (×1+)
B " █" (1|-)()˘
(AB) 40 +` 1»Line¨ •FLines 𝕩
}
# ⟨ 13060 "FJUBULRZ" ⟩
# (but the string is a big banner)
2022-12-18 07:47:21 -05:00
Day18 { # part 1 only :[
2022-12-21 12:02:25 -05:00
grid (> 1+´) •BQN¨ '‿'(=',')0 •FLines 𝕩
touch +´ «» {(𝕎𝕩)grid} 1+3
2022-12-18 07:47:21 -05:00
+´ (6×grid)-touch
}
# 3470