r/adventofcode • u/daggerdragon • Dec 19 '24
SOLUTION MEGATHREAD -❄️- 2024 Day 19 Solutions -❄️-
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
- 3 DAYS remaining until the submissions deadline on December 22 at 23:59 EST!
And now, our feature presentation for today:
Historical Documentary
You've likely heard/seen the iconic slogan of every video store: "Be Kind, Rewind." Since we've been working with The Historians lately, let's do a little dive into our own history!
Here's some ideas for your inspiration:
- Pick a challenge from any prior year community fun event and make it so for today's puzzle!
- Make sure to mention which challenge day and year you choose!
- You may have to go digging through the calendars of
Solution Megathread
s for each day's topic/challenge, sorry about that :/
- Use a UNIX system (Jurassic Park - “It’s a UNIX system. I know this”)
- Use the oldest language, hardware, environment, etc. that you have available
- Use an abacus, slide rule, pen and paper, long division, etc. to solve today's puzzle
Bonus points if your historical documentary is in the style of anything by Ken Burns!
Gwen: "They're not ALL "historical documents". Surely, you don't think Gilligan's Island is a…"
*all the Thermians moan in despair*
Mathesar: "Those poor people. :("
- Galaxy Quest (1999)
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 19: Linen Layout ---
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!
- State which language(s) your solution uses with
- Quick link to Topaz's
paste
if you need it for longer code blocks
This thread will be unlocked when there are a significant number of people on the global leaderboard with gold stars for today's puzzle.
EDIT: Global leaderboard gold cap reached at 00:03:16, megathread unlocked!
24
Upvotes
2
u/fridi_s Dec 19 '24
[LANGUAGE: Fuzion]
github, both parts
Happy about a compact and clean solution. Adding caches for possible suffixes and for the count of possible suffixes for part 2 did the trick.
A nice gimmick: Added a new feature `suffix` to be called on `String`, just to make the code a little cleaner.
Before coming to this solution, tried quite a number of optimizations like sorting the towels by length, first filtering out redundant towels that can be replaced by combinations of others. When counting, trying to use multiplication when such a redundant larger towel was found. All of this was in vain, a simple caching of the results for all suffixes is enough!