""" day12.py advent of code, day 12 We're working on a toy graph first, 5 | 0--1--3 6--7 | | 2--4 8 """ graph = { 0 : [1, 2], 1 : [0, 3, 5], 2 : [0, 4], 3 : [1], 4 : [2], 5 : [1], 6 : [7], 7 : [6, 8], 8 : [7] } def count_connected(id, seen): """ Return number of connected nodes. >>> len(count_connected(0, set())) 6 >>> len(count_connected(7, set())) 3 """ seen.add(id) for node in graph[id]: if node not in seen: seen = count_connected(node, seen) return seen def main(): answer_seen = count_connected(0, set()) print "answer is ", len(answer_seen) if __name__ == "__main__": import doctest doctest.testmod() main()