feat: solve part two using json and recursive approach

This commit is contained in:
2025-12-04 21:10:42 +01:00
parent bcc4fc3432
commit 79d9f8d7cc

View File

@@ -1,11 +1,13 @@
package daytwelve package daytwelve
import ( import (
"advent-of-code/internal/registry" "encoding/json"
"os" "os"
"regexp" "regexp"
"strconv" "strconv"
"strings" "strings"
"advent-of-code/internal/registry"
) )
func init() { func init() {
@@ -31,5 +33,36 @@ func PartOne(data []string) int {
} }
func PartTwo(data []string) int { func PartTwo(data []string) int {
return 0 var sumNumbers func(any) int
sumNumbers = func(v any) int {
switch value := v.(type) {
case float64:
return int(value)
case []any:
sum := 0
for _, item := range value {
sum += sumNumbers(item)
}
return sum
case map[string]any:
sum := 0
for _, item := range value {
if str, ok := item.(string); ok && str == "red" {
return 0
}
sum += sumNumbers(item)
}
return sum
default:
return 0
}
}
sum := 0
for _, line := range data {
var value any
_ = json.Unmarshal([]byte(line), &value)
sum += sumNumbers(value)
}
return sum
} }