⛄ Day 1
Advent of Code is a coding challenge
that releases a puzzle every day starting December 1st up until the 25th -
like an Advent Calendar but no stale chocolate...
Part 1
Given a list of numbers find two numbers that sum to 2020
Solution:
import csv
def parse_input(file_name):
with open(file_name, 'r') as data:
return [int(line[0]) for line in csv.reader(data)]
def 2_sum(target, inputs):
h = {}
for i in inputs:
h[i] = True
pairs = []
for i in inputs:
key = target - i
if h.get(key) is not None:
pairs.append([key, i])
return pairs
print(2_sum(2020, parse_input('day1.txt')))
Part 2
Given a list of numbers find three numbers that sum to 2020
Solution:
def 3_sum(target, inputs):
h = {}
for i in inputs:
h[i] = True
triplets = []
for i in range(0,len(inputs)/2):
for j in range(len(inputs)/2, len(inputs)):
val_i = inputs[i]
val_j = inputs[j]
key = target - val_i - val_j
if h.get(key) is not None:
triplets.append([key, val_i, val_j])
return triplets
print(3_sum(2020, parse_inputs('day1.txt')))