import re def getResult(input, mask): value = int(input) bstring = format(value, '#038b')[2:] result = "" for i in range(0, 36): if mask[i] == 'X': result += bstring[i] else: result += mask[i] return result def part1(): file = open("input.txt") lines = [i.strip() for i in file.readlines()] mask = '' mem = {} for line in lines: line = line.split(' ') if line[0] == 'mask': mask = line[2] elif line[0].startswith('mem'): mem_slot = re.split('mem\[([0-9]+)]', line[0])[1] result = getResult(line[2], mask) mem[mem_slot] = result mem_sum = 0 for memo in mem: mem_sum += int(mem[memo], 2) print(f"Part 1: {mem_sum}") def part2(): print("Part 2: ") if __name__ == "__main__": part1() part2()