import sys import os import re sys.path.insert(1, os.path.abspath('../../')) from python_tools.aoc_utils import * def part_one(input): pt_1=0 list_of_mults = re.findall(r"mul\(\d{1,3},\d{1,3}\)", input) for i in list_of_mults: numbers = re.findall(r"\d{1,3}", i) pt_1 += int(numbers[0]) * int(numbers[1]) # print(numbers) print("Part One: ", pt_1) def part_two(input): off=False pt_2=0 re1 = r"mul\(\d{1,3},\d{1,3}\)" re2 = r"do\(\)" re3 = r"don't\(\)" list_of_mults = re.compile("(%s|%s|%s)" % (re1, re2, re3)).findall(input) # list_of_mults = re.findall(r"do\(\)"+r"mul\(\d{1,3},\d{1,3}\)", input) for i in list_of_mults: if "don't()" == i: off = True elif "do()" == i: off = False else: if not off: numbers = re.findall(r"\d{1,3}", i) pt_2 += int(numbers[0]) * int(numbers[1]) print("Part One: ", pt_2) def main(): f = open("input.txt", 'r') input = f.read() part_one(input) part_two(input) if __name__ == "__main__": main()