Files
adventofcode/2019/aoc2019/day06.py
2021-01-23 22:34:58 +01:00

28 lines
563 B
Python

from typing import TextIO
import networkx # type: ignore
def read_graph(data: TextIO) -> networkx.DiGraph:
graph = networkx.DiGraph()
for line in data:
a, b = line.strip().split(')')
graph.add_edge(a, b)
return graph
def part1(data: TextIO) -> int:
graph = read_graph(data)
paths = networkx.single_source_shortest_path_length(graph, 'COM')
return sum(paths.values())
def part2(data: TextIO) -> int:
graph = read_graph(data).to_undirected()
return networkx.shortest_path_length(graph, 'YOU', 'SAN') - 2