diff --git a/2019/06/day06.kt b/2019/06/day06.kt index 734eb92..38e5c9b 100644 --- a/2019/06/day06.kt +++ b/2019/06/day06.kt @@ -1,13 +1,8 @@ fun main() { - val input = generateSequence(::readLine) - .map { it.split(")") } - .groupBy { it[0] } - .mapValues{ it.value.map { it[1] } } - val rootNode = input.keys - input.values.flatten().toSet() - - println("Part 1: ${countOrbiters(input, rootNode.first(), 0)}") + val input = generateSequence(::readLine).map { it.split(")") }.groupBy { it[0] }.mapValues{ it.value.map { it[1] } } + val rootNode = (input.keys - input.values.flatten().toSet()).first() + println("Part 1: ${countOrbiters(input, rootNode, 0)}") } -fun countOrbiters(graph: Map>, key: T, acc: Int): Int { - return acc + (graph[key]?.map { countOrbiters(graph, it, acc+1) }?.sum() ?: 0) -} +fun countOrbiters(graph: Map>, key: T, acc: Int): Int = + acc + (graph[key]?.map { countOrbiters(graph, it, acc+1) }?.sum() ?: 0)