Files
AoC-2020/day14/day14.py
2020-12-14 21:01:01 +01:00

44 lines
882 B
Python

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()