From b742a633fbe23d03b9a6ec8733da0f807f9f1fa3 Mon Sep 17 00:00:00 2001 From: Andrew Glaze Date: Mon, 2 Dec 2024 00:53:13 -0500 Subject: [PATCH] day 2 --- app/src/main/kotlin/day02/Day02.kt | 56 ++++++++++++++++++++++++++ app/src/test/kotlin/day02/Day02Test.kt | 42 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 app/src/main/kotlin/day02/Day02.kt create mode 100644 app/src/test/kotlin/day02/Day02Test.kt diff --git a/app/src/main/kotlin/day02/Day02.kt b/app/src/main/kotlin/day02/Day02.kt new file mode 100644 index 0000000..77fb071 --- /dev/null +++ b/app/src/main/kotlin/day02/Day02.kt @@ -0,0 +1,56 @@ +package day02 + +import kotlin.math.abs + +class Day02 { + fun parse(input: String): List> { + return input.lines().map { it.split(" ").map { it.toInt() } } + } + + fun part1(input: String): Int { + val parsed = parse(input) + + var safeCount = 0; + for (line in parsed) { + if (isSafe(line)) { + safeCount += 1 + } + } + return safeCount + } + + fun isSafe(line: List): Boolean { + var neg = line[0] - line[1] < 0 + for (i in 1.. 3 || abs(diff) < 1) { + return false + } + if ((diff < 0 && !neg) || (diff > 0 && neg)) { + return false + } + } + return true + } + + fun part2(input: String): Int { + val parsed = parse(input) + + var safeCount = 0; + for (line in parsed) { + if (isSafe(line)) { + safeCount += 1 + continue + } + + for (i in 0..