Solve 2024 day 19
This commit is contained in:
30
2024/d19.py
Normal file
30
2024/d19.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from lib import get_data
|
||||
from functools import cache
|
||||
|
||||
data = get_data(__file__)
|
||||
lines = data.splitlines()
|
||||
patterns = set(lines[0].split(", "))
|
||||
|
||||
|
||||
@cache
|
||||
def valid(line):
|
||||
if line == "":
|
||||
return 1
|
||||
r = 0
|
||||
for j in range(1, len(line) + 1):
|
||||
sub = line[:j]
|
||||
if sub in patterns:
|
||||
r += valid(line[j:])
|
||||
return r
|
||||
|
||||
|
||||
p1, p2 = 0, 0
|
||||
lines = lines[2:]
|
||||
for line in lines:
|
||||
v = valid(line.strip())
|
||||
if v > 0:
|
||||
p1 += 1
|
||||
p2 += v
|
||||
|
||||
print(p1)
|
||||
print(p2)
|
||||
Reference in New Issue
Block a user