diff --git a/2017/day12.py b/2017/day12.py new file mode 100644 index 0000000..dd62e4f --- /dev/null +++ b/2017/day12.py @@ -0,0 +1,28 @@ +from collections import defaultdict + +with open("input/day12.txt") as f: + input = f.read() + +neighbors = defaultdict(set) + +for line in input.splitlines(): + a, bs = line.split(" <-> ") + for b in bs.split(", "): + neighbors[a].add(b) + neighbors[b].add(a) + + +def connected(start, neighbors) -> int: + queue = [start] + seen = set() + while queue: + node = queue.pop(0) + if node in seen: + continue + + seen.add(node) + queue.extend(neighbors[node]) + return len(seen) + + +print(connected("0", neighbors))