# Vet mooi notebook van Bas Laten we beginnen met de imports ```python import re ``` ## Puzzel 1 ### Deel 1 ```python f = open('data/puzzle_1.txt', 'r') digits = [re.findall('\d', line) for line in f] numbers = [str(digit[0]) + str(digit[-1]) for digit in digits] numbers = [int(x) for x in numbers] print(sum(numbers)) ``` 55834 ### Deel 2 ```python f = open('data/puzzle_1.txt', 'r') l = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] digits = [re.findall('(?=(\d|'+'|'.join(l)+'))', line) for line in f] numbers = [[digit[0],digit[-1]] for digit in digits] listing = [] for number_pair in numbers: number_string = "" for number in number_pair: if number in l: number_string += str(l.index(number) + 1) else: number_string += str(number) listing.append(int(number_string)) sum(listing) ``` 53221 ## Puzzel 2 ### Deel 1 & 2 tegelijk, oeps ```python f = open('data/puzzle_2.txt', 'r') rows = [] red = 12 green = 13 blue = 14 for x in f: row = {} row['id'], row['content'] = x.split(':') row['id'] = int(re.findall('\d+', row['id'])[0]) row['counts'] = row['content'].split(';') listing = [] maxes = {'red': 0, 'green': 0, 'blue': 0} for count in row['counts']: numbers = re.findall('\d+', count) colors = re.findall('red|blue|green', count) for test_color, test_number in zip(colors, numbers): if maxes[test_color] < int(test_number): maxes[test_color] = int(test_number) listing.append(dict(zip(colors, numbers))) row['maxes'] = maxes row['counts'] = listing rows.append(row) ``` ### Naja hier pas de output ```python count = 0 count_2 = 0 for row in rows: maxes = row['maxes'] count_2 += maxes['red'] * maxes['blue'] * maxes['green'] if red >= maxes['red'] and blue >= maxes['blue'] and green >= maxes['green']: count += row['id'] print(count) print(count_2) ``` 3035 66027