feat: solve part two, still with greedy algorithm

This commit is contained in:
2025-12-03 10:36:14 +01:00
parent 56901ca553
commit b39b8c885b

View File

@@ -29,11 +29,13 @@ func PartOne(data [][]int) int {
total := 0
for _, bank := range data {
maxAfter := make([]int, len(bank))
for idx := len(bank) - 2; idx >= 0; idx-- {
maxAfter[idx] = max(maxAfter[idx+1], bank[idx+1])
}
maxJoltage := 0
for idx := 0; idx < len(bank)-1; idx++ {
joltage := bank[idx]*10 + maxAfter[idx]
maxJoltage = max(maxJoltage, joltage)
@@ -44,5 +46,27 @@ func PartOne(data [][]int) int {
}
func PartTwo(data [][]int) int {
return 0
total := 0
for _, bank := range data {
var joltage int
start := 0
for position := range 12 {
remaining := 12 - position - 1
maxIdx := start
maxValue := bank[start]
for idx := start; idx < len(bank)-remaining; idx++ {
if bank[idx] > maxValue {
maxValue = bank[idx]
maxIdx = idx
}
}
joltage = joltage*10 + maxValue
start = maxIdx + 1
}
total += joltage
}
return total
}