day 19 part 2

main
magical 2024-12-19 05:49:57 +00:00
parent f1ed65a6d9
commit d6b6bb979e
1 changed files with 31 additions and 0 deletions

31
day19/sol2.py 100644
View File

@ -0,0 +1,31 @@
from functools import cache
def solve(file):
designs = file.readline().strip().split(", ")
assert file.readline() == '\n'
ds = set(designs)
@cache
def ways(x):
n = 0
if x in ds:
n += 1
if len(x) > 1:
for i in range(1,len(x)):
if x[:i] in ds:
n += ways(x[i:])
#print("ways(%s) = %s"%(x,n))
return n
t = 0
for line in file:
towel = line.strip()
w = ways(towel)
#print(w, towel)
t += w
print(t)
solve(open('sample1.in'))
solve(open('input'))