This commit is contained in:
Stefan Forstenlechner 2022-12-04 14:55:40 +01:00
parent e797c3f8cb
commit cdad4691f0
2 changed files with 1038 additions and 0 deletions

1000
input/day4 Normal file

File diff suppressed because it is too large Load Diff

38
src/main/kotlin/Day4.kt Normal file
View File

@ -0,0 +1,38 @@
import java.io.File
import java.lang.Integer.max
import java.lang.Integer.min
fun main() {
println("Hello day4!")
solveDay4()
}
fun solveDay4() {
val part1 = File("input/day4").readLines()
.count { conpleteOverlap(it) }
println(part1)
val part2 = File("input/day4").readLines()
.count { partialOverlap(it) }
println(part2)
}
fun conpleteOverlap(line: String): Boolean {
val number = "(\\d+)-(\\d+),(\\d+)-(\\d+)".toRegex()
val l = number.find(line)!!.groupValues.stream().skip(1).map { Integer.valueOf(it) }.toList()
val min = min(l[0], l[2])
val max = max(l[1], l[3])
return (min == l[0] && max == l[1]) || (min == l[2] && max == l[3])
}
fun partialOverlap(line: String): Boolean {
val number = "(\\d+)-(\\d+),(\\d+)-(\\d+)".toRegex()
val l = number.find(line)!!.groupValues.stream().skip(1).map { Integer.valueOf(it) }.toList()
val max = max(l[0], l[2])
val min = min(l[1], l[3])
return min >= max
}