⛄ 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')))