Files
advent_of_code/2021/14.py
2021-12-14 23:32:40 -05:00

62 lines
1.5 KiB
Python

# with open("./2021/14.test") as input_file:
with open("./2021/14.input") as input_file:
input_data = input_file.read()
start_polymer = input_data.split("\n\n")[0]
polymer_rules = input_data.split("\n\n")[1].split("\n")
rules_dict = {}
for one_rule in polymer_rules:
rules_dict[one_rule.split(" -> ")[0]] = one_rule.split(" -> ")[1]
print(rules_dict)
counter = 1
while counter <= 10:
output_data = ""
for i in range(1, len(start_polymer)):
substring = start_polymer[i-1:i+1]
output_data += substring[0] + rules_dict[substring]
output_data += start_polymer[-1]
start_polymer = output_data
counter += 1
output_dict = {}
for i in range(len(start_polymer)):
if start_polymer[i] not in output_dict.keys():
output_dict[start_polymer[i]] = 0
output_dict[start_polymer[i]] += 1
print(output_dict)
print(max(output_dict.values()) - min(output_dict.values()))
while counter <= 40:
output_data = ""
for i in range(1, len(start_polymer)):
substring = start_polymer[i-1:i+1]
output_data += substring[0] + rules_dict[substring]
output_data += start_polymer[-1]
start_polymer = output_data
print(counter, end='\r')
counter += 1
output_dict = {}
for i in range(len(start_polymer)):
if start_polymer[i] not in output_dict.keys():
output_dict[start_polymer[i]] = 0
output_dict[start_polymer[i]] += 1
print(output_dict)
print(max(output_dict.values()) - min(output_dict.values()))