day4
This commit is contained in:
parent
e797c3f8cb
commit
cdad4691f0
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue