Added 2017

This commit is contained in:
2024-11-12 19:21:32 +01:00
parent ef840affed
commit 3115c7c20f
4 changed files with 226 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
## \-\-- 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).
+28
View File
@@ -0,0 +1,28 @@
#!/bin/python3
import sys
from pprint import pprint
input_f = "input" #sys.argv[1]
sum = 0
with open(input_f) as file:
for line in file:
line = list(map(int,line.rstrip('\n').split()))
#########################################
# #
# Part 1 #
# #
#########################################
sum+=(max(line)-min(line))
print(sum)
#########################################
# #
# Part 2 #
# #
#########################################