Skip to content

Commit

Permalink
add day 19 Python solution
Browse files Browse the repository at this point in the history
  • Loading branch information
Andriamanitra committed Dec 19, 2024
1 parent 293175a commit bff977f
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions day19/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from collections import defaultdict

with open("input.txt") as f:
patterns, designs = f.read().split("\n\n")
patterns = patterns.split(", ")
designs = designs.split()

patterns_by_letter = defaultdict(list)
for pattern in patterns:
patterns_by_letter[pattern[0]].append(pattern)

part1 = 0
part2 = 0
for design in designs:
memo = [1] + [0] * len(design)
for i, first_letter in enumerate(design):
for pattern in patterns_by_letter[first_letter]:
if design.startswith(pattern, i):
memo[i + len(pattern)] += memo[i]
part1 += memo[-1] > 0
part2 += memo[-1]

print("Part 1:", part1)
print("Part 2:", part2)

0 comments on commit bff977f

Please sign in to comment.