Simplify
This commit is contained in:
parent
782fccc572
commit
399d894c68
@ -16,12 +16,12 @@ class Day03 : BaseDay() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun part2(): Any {
|
override fun part2(): Any {
|
||||||
val oxygenNumbers = findNumber(input.lines.value) { ones, zeros -> if (ones >= zeros) '1' else '0' }
|
val o2 = findNumber(input.lines.value) { ones, zeros -> if (ones >= zeros) '1' else '0' }
|
||||||
val co2Numbers = findNumber(input.lines.value) { ones, zeros -> if (zeros <= ones) '0' else '1' }
|
val co2 = findNumber(input.lines.value) { ones, zeros -> if (zeros <= ones) '0' else '1' }
|
||||||
return oxygenNumbers[0].toInt(2) * co2Numbers[0].toInt(2)
|
return o2 * co2
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun findNumber(input: List<String>, keep: (Int, Int) -> Char): List<String> {
|
private fun findNumber(input: List<String>, keep: (Int, Int) -> Char): Int {
|
||||||
var numbers = input
|
var numbers = input
|
||||||
for (i in this.input.lines.value[0].indices) {
|
for (i in this.input.lines.value[0].indices) {
|
||||||
if (numbers.size == 1) break
|
if (numbers.size == 1) break
|
||||||
@ -31,7 +31,6 @@ class Day03 : BaseDay() {
|
|||||||
val maj = keep(ones, zeros)
|
val maj = keep(ones, zeros)
|
||||||
numbers = numbers.filter { it[i] == maj }
|
numbers = numbers.filter { it[i] == maj }
|
||||||
}
|
}
|
||||||
return numbers
|
return numbers[0].toInt(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user