Skip to content

Commit 194f2d2

Browse files
authored
Merge pull request #13 from sraaphorst/I03
Minor cleanup.
2 parents 2998476 + c2f2475 commit 194f2d2

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/main/kotlin/day07/day07.kt

+10-9
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ data class Equation(val total: BigInteger, val numbers: List<BigInteger>) {
1717
private fun canBeMade(allowConcat: Boolean): Boolean {
1818
// Memoization here does not significantly improve time.
1919
fun aux(currTotal: BigInteger = numbers.first(),
20-
remainingNumbers: List<BigInteger> = numbers.drop(1)): Boolean {
21-
if (currTotal > total) return false
22-
if (remainingNumbers.isEmpty()) return currTotal == total
23-
24-
val nextNumber = remainingNumbers.first()
25-
val nextRemainingNumbers = remainingNumbers.drop(1)
26-
return aux(currTotal + nextNumber, nextRemainingNumbers) ||
27-
aux(currTotal * nextNumber, nextRemainingNumbers) ||
28-
(allowConcat && aux("$currTotal$nextNumber".toBigInteger(), nextRemainingNumbers))
20+
remainingNumbers: List<BigInteger> = numbers.drop(1)): Boolean = when {
21+
currTotal > total -> false
22+
remainingNumbers.isEmpty() -> currTotal == total
23+
else -> {
24+
val nextNumber = remainingNumbers.first()
25+
val nextRemainingNumbers = remainingNumbers.drop(1)
26+
aux(currTotal + nextNumber, nextRemainingNumbers) ||
27+
aux(currTotal * nextNumber, nextRemainingNumbers) ||
28+
(allowConcat && aux("$currTotal$nextNumber".toBigInteger(), nextRemainingNumbers))
29+
}
2930
}
3031
return aux()
3132
}

0 commit comments

Comments
 (0)