Day07 + optimizations
This commit is contained in:
@@ -11,8 +11,8 @@ typealias Entries = List<Entry>
|
||||
@Day(4)
|
||||
class Day04(@Text val input: Input<String>) {
|
||||
|
||||
val entries: List<Entries> = input.value.trim().split("\n\n").map {
|
||||
it.replace("\n", " ").split(" ").map { it.split(":").let { (k, v) -> k.trim() to v.trim() } }
|
||||
val entries = input.value.split("\n\n").map {
|
||||
it.split(" ", "\n").map { it.split(":").let { (k, v) -> k to v } }
|
||||
}
|
||||
|
||||
private fun Entries.hasRequiredKeys() = map { it.first }
|
||||
@@ -20,10 +20,10 @@ class Day04(@Text val input: Input<String>) {
|
||||
|
||||
fun part1() = entries.count { it.hasRequiredKeys() }
|
||||
|
||||
private val hclRegex = "^#[0-9a-f]{6}$".toRegex()
|
||||
private val pidRegex = "^[0-9]{9}$".toRegex()
|
||||
private val hclRegex = Regex("#[0-9a-f]{6}")
|
||||
private val pidRegex = Regex("[0-9]{9}")
|
||||
|
||||
private fun Entry.hasValidValues() = let { (k, v) ->
|
||||
private fun Entry.isValid() = let { (k, v) ->
|
||||
when (k) {
|
||||
"byr" -> v.toInt() in 1920..2002
|
||||
"iyr" -> v.toInt() in 2010..2020
|
||||
@@ -40,7 +40,7 @@ class Day04(@Text val input: Input<String>) {
|
||||
}
|
||||
}
|
||||
|
||||
fun part2() = entries.count { it.hasRequiredKeys() && it.all { it.hasValidValues() } }
|
||||
fun part2() = entries.count { it.hasRequiredKeys() && it.all { it.isValid() } }
|
||||
}
|
||||
|
||||
fun main() = with(createDay<Day04>()) {
|
||||
|
||||
Reference in New Issue
Block a user