16
🌻 - 2024 DAY 12 SOLUTIONS -🌻
(programming.dev)
An unofficial home for the advent of code community on programming.dev! Other challenges are also welcome!
Advent of Code is an annual Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.
Everybody Codes is another collection of programming puzzles with seasonal events.
Solution Threads
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 |
Icon base by Lorc under CC BY 3.0 with modifications to add a gradient
console.log('Hello World')
I found multidimensional markers for partition to work really well for finding the fields:
Areas ← ⊜□:⇡△.+1⍜♭⊛It just groups the other array's contents according to adjacent markers, horizontally and vertically. Took me quite a bit to figure out what's actually happening in the example in the documentation ^^'Ooh, interesting, I'll have to give that a try. Thanks!
(edit) Wow, that replaced my three lines of overly complex code without a hitch.
classifyis an operator I never really got the point of before. Beautiful.Nice :D
How's the speed now?
1.8s now. 99% of that in
Sides. I've just had an idea though... ~~maybe too late for today though!~~edit: prepending
≡⍚(-¤⊸/↧)toFieldsspared me from manipulating hundreds of irrelevant 0's, so time is very good now at 55ms.Damn that's a lot time saved. I love how unassuming the addition looks for how great an effect it has
It was a real D'oh! moment when I visualised the data I was generating and saw all the zeros stretching across the page.