package main import ( _ "embed" "fmt" "strconv" "strings" ) //go:embed input.txt var input string func main() { nums := strings.Split(input, ",") buckets := make(map[int]int) for _, num := range nums { v, err := strconv.Atoi(num) if err != nil { panic(err) } buckets[v]++ } // Age for i := 0; i < 256; i++ { newBuckets := make(map[int]int) for k, v := range buckets { if k-1 < 0 { newBuckets[8] += v newBuckets[6] += v } else { newBuckets[k-1] += v } } buckets = newBuckets } out := 0 for _, v := range buckets { out += v } fmt.Println(out) }