2024-12-19 - Linen Layout
(original .ipynb)puzzle_input_str = open("./puzzle_input/day19.txt").read() test_input_str = """r, wr, b, g, bwu, rb, gb, br brwrr bggr gbbr rrbgbr ubwu bwurrg brgr bbrgwb""" def parse_pattern(total_string, pattern, parse_tree): if len(pattern) == 0: return token, rest = pattern[0], pattern[1:] if token not in parse_tree: subtree = {} parse_pattern(total_string + token, rest, subtree) parse_tree[token] = subtree else: parse_pattern(total_string + token) def parse_patterns(patterns): parse_tree = {} for pattern in patterns: parse_pattern("", pattern, parse_tree) return parse_tree def parse_input(input_str): patterns_str, designs_str = input_str.split("\n\n") patterns = [pattern for pattern in patterns_str.split(", ")] designs = [design for design in designs_str.split("\n")] return patterns, designs def part_one(input_str): patterns, designs = parse_input(input_str) return 0 assert 0 == part_one(test_input_str) print("part one:", part_one(puzzle_input_str))
part one: 0