adventofcode/2024/day07/problem

120 lines
4.7 KiB
Plaintext
Raw Normal View History

2024-12-18 14:12:54 +00:00
Advent of Code
--- Day 7: Bridge Repair ---
The Historians take you to a familiar [16]rope bridge over a river in the
middle of a jungle. The Chief isn't on this side of the bridge, though;
maybe he's on the other side?
When you go to cross the bridge, you notice a group of engineers trying to
repair it. (Apparently, it breaks pretty frequently.) You won't be able to
cross until it's fixed.
You ask how long it'll take; the engineers tell you that it only needs
final calibrations, but some young elephants were playing nearby and stole
all the operators from their calibration equations! They could finish the
calibrations if only someone could determine which test values could
possibly be produced by placing any combination of operators into their
calibration equations (your puzzle input).
For example:
190: 10 19
3267: 81 40 27
83: 17 5
156: 15 6
7290: 6 8 6 15
161011: 16 10 13
192: 17 8 14
21037: 9 7 18 13
292: 11 6 16 20
Each line represents a single equation. The test value appears before the
colon on each line; it is your job to determine whether the remaining
numbers can be combined with operators to produce the test value.
Operators are always evaluated left-to-right, not according to precedence
rules. Furthermore, numbers in the equations cannot be rearranged.
Glancing into the jungle, you can see elephants holding two different
types of operators: add (+) and multiply (*).
Only three of the above equations can be made true by inserting operators:
 190: 10 19 has only one position that accepts an operator: between 10
and 19. Choosing + would give 29, but choosing * would give the test
value (10 * 19 = 190).
 3267: 81 40 27 has two positions for operators. Of the four possible
configurations of the operators, two cause the right side to match the
test value: 81 + 40 * 27 and 81 * 40 + 27 both equal 3267 (when
evaluated left-to-right)!
 292: 11 6 16 20 can be solved in exactly one way: 11 + 6 * 16 + 20.
The engineers just need the total calibration result, which is the sum of
the test values from just the equations that could possibly be true. In
the above example, the sum of the test values for the three equations
listed above is 3749.
Determine which equations could possibly be true. What is their total
calibration result?
Your puzzle answer was 5030892084481.
--- Part Two ---
The engineers seem concerned; the total calibration result you gave them
is nowhere close to being within safety tolerances. Just then, you spot
your mistake: some well-hidden elephants are holding a third type of
operator.
The [17]concatenation operator (||) combines the digits from its left and
right inputs into a single number. For example, 12 || 345 would become
12345. All operators are still evaluated left-to-right.
Now, apart from the three equations that could be made true using only
addition and multiplication, the above example has three more equations
that can be made true by inserting operators:
 156: 15 6 can be made true through a single concatenation: 15 || 6 =
156.
 7290: 6 8 6 15 can be made true using 6 * 8 || 6 * 15.
 192: 17 8 14 can be made true using 17 || 8 + 14.
Adding up all six test values (the three that could be made before using
only + and * plus the new three that can now be made by also using ||)
produces the new total calibration result of 11387.
Using your new knowledge of elephant hiding spots, determine which
equations could possibly be true. What is their total calibration result?
Your puzzle answer was 91377448644679.
Both parts of this puzzle are complete! They provide two gold stars: **
At this point, you should [18]return to your Advent calendar and try
another puzzle.
If you still want to see it, you can [19]get your puzzle input.
You can also [Shareon [20]Bluesky [21]Twitter [22]Mastodon] this puzzle.
References
Visible links
1. https://adventofcode.com/
2. https://adventofcode.com/2024/about
3. https://adventofcode.com/2024/events
4. https://cottonbureau.com/people/advent-of-code
5. https://adventofcode.com/2024/settings
6. https://adventofcode.com/2024/auth/logout
7. Advent of Code Supporter
https://adventofcode.com/2024/support
8. https://adventofcode.com/2024
9. https://adventofcode.com/2024
10. https://adventofcode.com/2024/support
12. https://adventofcode.com/2024/leaderboard
13. https://adventofcode.com/2024/stats
16. https://adventofcode.com/2022/day/9
17. https://en.wikipedia.org/wiki/Concatenation
18. https://adventofcode.com/2024
19. https://adventofcode.com/2024/day/7/input