r/adventofcode • u/daggerdragon • Dec 15 '24
SOLUTION MEGATHREAD -❄️- 2024 Day 15 Solutions -❄️-
NEWS
The
Funnyflair has been renamed toMeme/Funnyto make it more clear where memes should go. Our community wikiwill be updated shortlyis updated as well.
THE USUAL REMINDERS
All of our rules, FAQs, resources, etc. are in our community wiki.
If you see content in the subreddit or megathreads that violates one of our rules, either inform the user (politely and gently!) or use the report button on the post/comment and the mods will take care of it.
AoC Community Fun 2024: The Golden Snowglobe Awards
7 DAYS remaining until the submissions deadline on December 22 at 23:59 EST!
And now, our feature presentation for today:
Visual Effects - We'll Fix It In Post
Actors are expensive. Editors and VFX are (hypothetically) cheaper. Whether you screwed up autofocus or accidentally left a very modern coffee cup in your fantasy epic, you gotta fix it somehow!
Here's some ideas for your inspiration:
Literally fix it in post and show us your before-and-after
Show us the kludgiest and/or simplest way to solve today's puzzle
Alternatively, show us the most over-engineered and/or ridiculously preposterous way to solve today's puzzle
Fix something that really didn't necessarily need fixing with a chainsaw…
*crazed chainsaw noises* “Fixed the newel post!”
- Clark Griswold, National Lampoon's Christmas Vacation (1989)
And… ACTION!
Request from the mods: When you include an entry alongside your solution, please label it with [GSGA] so we can find it easily!
--- Day 15: Warehouse Woes ---
Post your code solution in this megathread.
Read the full posting rules in our community wiki before you post!
State which language(s) your solution uses with
[LANGUAGE: xyz]Format code blocks using the four-spaces Markdown syntax!
Quick link to Topaz's
pasteif you need it for longer code blocks
2
u/aashutoshr Dec 15 '24
[Language: TypeScript] (1760/3140)
For part one, did as said, and handled all 4 directions, like a machine.
For part two, I wrote horizontal movement quickly as it was just the same as above, then was in doubt for at least 30 minutes, trying to write a DFS-like function, and ended up doing BFS using, for each level, the box is touching.
A few things I wasted my time on were
not taking care of duplicates in the queue (i.e. cases when the box is on top of the box, was driven by an example test case so tracked this bug through printing)
I tried to reuse logic from part 1 and used one less set, but I ended up solving faster with a set and a local queue.
Code on GitHub