Added 2017
This commit is contained in:
@@ -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).
|
||||
@@ -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 #
|
||||
# #
|
||||
#########################################
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user