Files
advent-of-code/2018/day-5/python/main.py
2019-07-26 21:22:16 -06:00

35 lines
1.1 KiB
Python

import os, sys, time, progressbar, string
path = os.path.join(sys.path[0], '..', 'input')
data = open(path, 'r').read()
# data = data[:10000]
data = 'dabAcCaCBAcCcaDA'
def react(string):
look = True
while look:
look = False
for i in range(len(string)-1):
if string[i].lower() == string[i + 1].lower() and string[i] != string[i + 1]:
string = string[:i] + string[i+2:]
look = True
break
return string
# t1 = time.time()
# data = react(data) #11476
# t2 = time.time()
# print('Part 1 Solution: {}'.format(len(data)))
# print('Solved in {}s\n'.format(round(t2 - t1, 3)))
t1 = time.time()
lengths = {}
charset = ''.join(list(set(data)))
for char in progressbar.progressbar(list(charset)):
table = str.maketrans({char : None, char.lower() : None})
lengths[char] = len(react(data.translate(table)))
char, length = min(lengths.items(), key=lambda item : item[1])
t2 = time.time()
print('\nPart 2 Solution: Removing polymer {}{} had the most effect at length {}.'.format(char, char.lower(), length))
print('Solved in {}s\n'.format(round(t2 - t1, 3)))