From 67a18e2687fab94efecbdfad96184e6465be00a5 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 5 Dec 2021 11:26:31 +0100 Subject: [PATCH] day(05): fix DRY Signed-off-by: Matej Focko --- src/day05/Day05.kt | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/day05/Day05.kt b/src/day05/Day05.kt index 55fd5db..fa6f46e 100644 --- a/src/day05/Day05.kt +++ b/src/day05/Day05.kt @@ -47,22 +47,11 @@ fun readVector(input: String): Vector { return Vector(readPoint(from), readPoint(to)) } -fun part1(input: List): Int { +fun findOverlaps(input: List): Int { var points: MutableMap = mutableMapOf() - - input.filter { it.horizontalOrVertical } + input .flatMap { it.points } .forEach { points[it] = 1 + points.getOrDefault(it, 0) } - - return points.count { (_, count) -> count >= 2 } -} - -fun part2(input: List): Int { - var points: MutableMap = mutableMapOf() - - input.flatMap { it.points } - .forEach { points[it] = 1 + points.getOrDefault(it, 0) } - return points.count { (_, count) -> count >= 2 } } @@ -70,9 +59,9 @@ fun main() { val testInput = readInput(5, "test_input").map { readVector(it) } val input = readInput(5, "input").map { readVector(it) } - check(part1(testInput) == 5) - println(part1(input)) + check(findOverlaps(testInput.filter { it.horizontalOrVertical }) == 5) + println(findOverlaps(input.filter { it.horizontalOrVertical })) - check(part2(testInput) == 12) - println(part2(input)) + check(findOverlaps(testInput) == 12) + println(findOverlaps(input)) }