diff --git a/2017/day12.py b/2017/day12.py index dd62e4f..83d9493 100644 --- a/2017/day12.py +++ b/2017/day12.py @@ -12,7 +12,7 @@ for line in input.splitlines(): neighbors[b].add(a) -def connected(start, neighbors) -> int: +def connected(start, neighbors): queue = [start] seen = set() while queue: @@ -22,7 +22,21 @@ def connected(start, neighbors) -> int: seen.add(node) queue.extend(neighbors[node]) - return len(seen) + return seen -print(connected("0", neighbors)) +def groups(neighbors) -> int: + seeds = set(neighbors.keys()) + count = 0 + + while seeds: + start = seeds.pop() + seen = connected(start, neighbors) + seeds.difference_update(seen) + count += 1 + + return count + + +print(len(connected("0", neighbors))) +print(groups(neighbors))