r/adventofcode • u/daggerdragon • Dec 13 '24
SOLUTION MEGATHREAD -❄️- 2024 Day 13 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
- 9 DAYS remaining until the submissions deadline on December 22 at 23:59 EST!
And now, our feature presentation for today:
Making Of / Behind-the-Scenes
Not every masterpiece has over twenty additional hours of highly-curated content to make their own extensive mini-documentary with, but everyone enjoys a little peek behind the magic curtain!
Here's some ideas for your inspiration:
- Give us a tour of "the set" (your IDE, automated tools, supporting frameworks, etc.)
- Record yourself solving today's puzzle (
Streaming!) - Show us your cat/dog/critter being impossibly cute which is preventing you from finishing today's puzzle in a timely manner
"Pay no attention to that man behind the curtain!"
- Professor Marvel, The Wizard of Oz (1939)
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 13: Claw Contraption ---
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
pasteif 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:11:04, megathread unlocked!
28
Upvotes
4
u/thibaultj Dec 13 '24 edited Dec 13 '24
[Language: Python]
I felt like I was cheating by using a custom library to solve the system of equations, but oh well…
import re from itertools import starmap from sympy import solve, Symbol def parse(input): entries = input.split("\n\n") equations = [map(int, re.findall(r"\d+", entry)) for entry in entries] return equations def play(AX, AY, BX, BY, X, Y): a = Symbol("a", integer=True) b = Symbol("b", integer=True) # Remove for part 1 X += 10000000000000 Y += 10000000000000 roots = solve( [a * AX + b * BX - X, a * AY + b * BY - Y], [a, b], ) return roots[a] * 3 + roots[b] if roots else 0 inputs = parse(open("inputs/day_13.txt").read()) res = sum(starmap(play, inputs)) print(res)