Skip to content

Instantly share code, notes, and snippets.

@Nv7-GitHub
Created December 7, 2021 05:31
Show Gist options
  • Save Nv7-GitHub/ea8d85e939b7e97c8c444639fae70bae to your computer and use it in GitHub Desktop.
Save Nv7-GitHub/ea8d85e939b7e97c8c444639fae70bae to your computer and use it in GitHub Desktop.
Advent of Code 2021 Day 6
package main
import (
_ "embed"
"fmt"
"strconv"
"strings"
)
//go:embed input.txt
var input string
func main() {
nums := strings.Split(input, ",")
vals := make([]int, len(nums))
var err error
for i, num := range nums {
vals[i], err = strconv.Atoi(num)
if err != nil {
panic(err)
}
}
// Age
for i := 0; i < 80; i++ {
for i := range vals {
vals[i]--
if vals[i] == -1 {
vals = append(vals, 8)
vals[i] = 6
}
}
}
fmt.Println(len(vals))
}
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)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment