2022 day 12.
This commit is contained in:
		| @@ -1,13 +1,38 @@ | ||||
| import itertools | ||||
| import sys | ||||
| from collections import defaultdict | ||||
| from dataclasses import dataclass | ||||
|  | ||||
| from tqdm import tqdm | ||||
|  | ||||
| lines = sys.stdin.read().splitlines() | ||||
|  | ||||
| count = 0 | ||||
| for line in lines: | ||||
|     parts = line.split(" ") | ||||
|     pattern = parts[0] | ||||
|     counts = [int(c) for c in parts[1].split(",")] | ||||
|  | ||||
|     missing = [i for i in range(len(pattern)) if pattern[i] == "?"] | ||||
|  | ||||
|     for replacements in itertools.product(".#", repeat=len(missing)): | ||||
|         c_pattern = list(pattern) | ||||
|         for i_missing, replacement in zip(missing, replacements): | ||||
|             c_pattern[i_missing] = replacement | ||||
|  | ||||
|         parts = [p for p in "".join(c_pattern).split(".") if p] | ||||
|  | ||||
|         if len(parts) == len(counts) and all( | ||||
|             len(p) == c for p, c in zip(parts, counts) | ||||
|         ): | ||||
|             # print("".join(c_pattern), counts) | ||||
|             count += 1 | ||||
|  | ||||
| # part 1 | ||||
| answer_1 = ... | ||||
| answer_1 = count | ||||
| print(f"answer 1 is {answer_1}") | ||||
|  | ||||
| # part 2 | ||||
| answer_2 = ... | ||||
| print(f"answer 2 is {answer_2}") | ||||
| print(f"answer 2 is {answer_2}") | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,6 @@ | ||||
| ???.### 1,1,3 | ||||
| .??..??...?##. 1,1,3 | ||||
| ?#?#?#?#?#?#?#? 1,3,1,6 | ||||
| ????.#...#... 4,1,1 | ||||
| ????.######..#####. 1,6,5 | ||||
| ?###???????? 3,2,1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user