AdventOfCode/2017/02/2.md

71 lines
2.5 KiB
Markdown
Raw Normal View History

2024-11-12 19:21:32 +01:00
## \-\-- Day 2: Corruption Checksum \-\--
As you walk through the door, a glowing humanoid shape yells in your
direction. \"You there! Your state appears to be idle. Come help us
repair the corruption in this spreadsheet - if we take another
millisecond, we\'ll have to display an hourglass cursor!\"
The spreadsheet consists of rows of apparently-random numbers. To make
sure the recovery process is on the right track, they need you to
calculate the spreadsheet\'s *checksum*. For each row, determine the
difference between the largest value and the smallest value; the
checksum is the sum of all of these differences.
For example, given the following spreadsheet:
5 1 9 5
7 5 3
2 4 6 8
- The first row\'s largest and smallest values are `9` and `1`, and
their difference is `8`.
- The second row\'s largest and smallest values are `7` and `3`, and
their difference is `4`.
- The third row\'s difference is `6`.
In this example, the spreadsheet\'s checksum would be `8 + 4 + 6 = 18`.
*What is the checksum* for the spreadsheet in your puzzle input?
Your puzzle answer was `34925`.
The first half of this puzzle is complete! It provides one gold star: \*
## \-\-- Part Two \-\-- {#part2}
\"Great work; looks like we\'re on the right track after all. Here\'s a
*star* for your effort.\" However, the program seems a little worried.
Can programs *be* worried?
\"Based on what we\'re seeing, it looks like all the User wanted is some
information about the *evenly divisible values* in the spreadsheet.
Unfortunately, none of us are equipped for that kind of calculation -
most of us specialize in [bitwise
operations]{title="Bonus points if you solve this part using only bitwise operations."}.\"
It sounds like the goal is to find the only two numbers in each row
where one evenly divides the other - that is, where the result of the
division operation is a whole number. They would like you to find those
numbers on each line, divide them, and add up each line\'s result.
For example, given the following spreadsheet:
5 9 2 8
9 4 7 3
3 8 6 5
- In the first row, the only two numbers that evenly divide are `8`
and `2`; the result of this division is `4`.
- In the second row, the two numbers are `9` and `3`; the result is
`3`.
- In the third row, the result is `2`.
In this example, the sum of the results would be `4 + 3 + 2 = 9`.
What is the *sum of each row\'s result* in your puzzle input?
Answer:
Although it hasn\'t changed, you can still [get your puzzle
input](2/input).