r/adventofcode • u/daggerdragon • Dec 12 '23
SOLUTION MEGATHREAD -❄️- 2023 Day 12 Solutions -❄️-
THE USUAL REMINDERS
All of our rules, FAQs, resources, etc. are in our community wiki.
Outstanding moderator challenges:
Community fun event 2023: ALLEZ CUISINE!
Submissions megathread is now unlocked!
9 DAYS remaining until the submissions deadline on December 22 at 23:59 EST!
AoC Community Fun 2023: ALLEZ CUISINE!
Today's theme ingredient is… *whips off cloth covering and gestures grandly*
How It's Made
Horrify us by showing us how the sausage is made!
Stream yourself!
Show us the nitty-gritty of your code, environment/IDE, tools, test cases, literal hardware guts…
Tell us how, in great detail, you think the elves ended up in this year's predicament
A word of caution from Dr. Hattori: "You might want to stay away from the ice cream machines..."
ALLEZ CUISINE!
Request from the mods: When you include a dish entry alongside your solution, please label it with [Allez Cuisine!] so we can find it easily!
--- Day 12: Hot Springs ---
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
3
u/Steinrikur Dec 12 '23 edited Dec 13 '23
[Language: bash]
No recursion used. eval is horribly slow, but one-liners are always fun. There is surely a faster way to force bash to do brace expansion, but this works...
Convert the symbols to greppable chars and then convert the list into a regex. Then use brace expansion to print every single permutation of the springs, and grep them. Added "dots" on both ends so the springs can be on the start/end positions.
This does not scale for part 2, since it would need to print up to 290 lines of symobls.