1
0
This commit is contained in:
Hubert Van De Walle 2021-12-04 12:42:55 +01:00
parent 97334d34eb
commit b3c99e3607

View File

@ -25,26 +25,12 @@ class Day04 : BaseDay() {
private fun playBoard(board: List<List<Int>>, numbers: List<Int>): Pair<Int, Int> {
for (round in numbers.indices) {
val usedNumbers = numbers.take(round)
var winning = false
for (line in board) {
for (line in board + board[0].indices.map { col -> board.map { it[col] } }) {
if (usedNumbers.containsAll(line)) {
winning = true
break
val unmarkedNumbers = board.flatten().toMutableSet().also { it.removeAll(usedNumbers) }
return round to unmarkedNumbers.sum() * usedNumbers.last()
}
}
if (!winning) {
for (i in board[0].indices) {
val column = board.map { it[i] }
if (usedNumbers.containsAll(column)) {
winning = true
break
}
}
}
if (winning) {
val unmarkedNumbers = board.flatten().toMutableSet().also { it.removeAll(usedNumbers) }
return round to unmarkedNumbers.sum() * usedNumbers.last()
}
}
error("No wins")
}