day 14
This commit is contained in:
61
2021/14.py
Normal file
61
2021/14.py
Normal 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()))
|
||||
|
||||
Reference in New Issue
Block a user