(Go) day 8 part 2 done
This commit is contained in:
parent
fdb838bab3
commit
a50ab7c1ae
20
08/main.go
20
08/main.go
|
@ -38,6 +38,21 @@ func metaSum(root Node) (sum int) {
|
|||
return sum
|
||||
}
|
||||
|
||||
func specialSum(root Node) (sum int) {
|
||||
if len(root.Children) == 0 {
|
||||
return metaSum(root)
|
||||
}
|
||||
for _, m := range root.Metadata {
|
||||
if m == 0 {
|
||||
continue
|
||||
}
|
||||
if len(root.Children) >= m {
|
||||
sum += specialSum(root.Children[m-1])
|
||||
}
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
func main() {
|
||||
inFile, _ := ioutil.ReadFile("input")
|
||||
rawInput := strings.Split(string(inFile), " ")
|
||||
|
@ -46,5 +61,10 @@ func main() {
|
|||
input[i], _ = strconv.Atoi(s)
|
||||
}
|
||||
root, _ := parseNode(input, 0)
|
||||
|
||||
// part 1
|
||||
fmt.Println(metaSum(root))
|
||||
|
||||
// part 2
|
||||
fmt.Println(specialSum(root))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user