Update day 12 solution
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2021-12-13 09:31:20 +01:00
parent e0a1022a55
commit f1a4989196

View File

@@ -1,25 +1,20 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from pathlib import Path from pathlib import Path
from collections import deque
def process_node(node, available_edges, visited): def process_node(node, available_edges, visited):
paths = deque() num_paths = 0
if node == "end": if node == "end":
paths.append(deque(node)) return 1
return paths
if node.islower(): if node.islower():
visited.add(node) visited.add(node)
neighbors = [n for e in available_edges if node in e for n in e if n != node] neighbors = [n for e in available_edges if node in e for n in e if n != node]
for n in neighbors: for n in neighbors:
if n not in visited: if n not in visited:
nxt = process_node(n, available_edges, visited) num_paths += process_node(n, available_edges, visited)
for p in nxt:
p.appendleft(node)
paths += nxt
if node in visited: if node in visited:
visited.remove(node) visited.remove(node)
return paths return num_paths
def process_node_twice(node, available_edges, visited, visited_twice): def process_node_twice(node, available_edges, visited, visited_twice):