⛄ Day 6

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

Sum of a list where anyone answered 'yes'
Solution:
                                
                                    
    import csv
    
    
    def open_file(file_name):
        with open(file_name) as r:
            print(r.read())
    
    
    def read_input(file_name):
        input = []
        with open(file_name, 'r') as data:
            arr = list(map(lambda x: x[0] if len(x) > 0 else None, csv.reader(data)))
        group = []
        for a in arr:
            if a is None:
                input.append(group)
                group = []
            else:
                group.append(a)
    
        input.append(group)
    
        return input

    
    def parse_to_keys_anyone(el):
        d = {}
        for a in el:
            for char in list(a):
                d[char] = 1
        return d
    
    input = read_input('day6.txt')
    
    dicts = map(lambda x: parse_to_keys_anyone(x), input)
    count = map(lambda x: len(x.keys()), dicts)
    print(sum(count))
        
                                
                            

Part 2

Sum of a list where everyone answered 'yes'
Solution:
                                
                                    
    def parse_to_keys_everyone(el):
        d = {}
        for a in el:
            for char in list(a):
                if d.get(char) is None:
                    d[char] = 1
                else:
                    d[char] = d[char] + 1
    
        keys = d.keys()
        all = len(el)
    
        for k in keys:
            if d[k] != all:
                del d[k]
    
        return d
    
    dicts = map(lambda x: parse_to_keys_everyone(x), input)
    count = map(lambda x: len(x.keys()), dicts)
    print(sum(count))