This commit is contained in:
Jed
2021-12-14 23:32:40 -05:00
parent e14b287e39
commit 66c67d3648
4 changed files with 263 additions and 0 deletions

61
2021/14.py Normal file
View File

@@ -0,0 +1,61 @@
# 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()))