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