master
George Wensor 3 years ago
parent 73c49553cc
commit 0866ab5764

@ -0,0 +1 @@
3,4,3,1,2

@ -0,0 +1,56 @@
package main
import (
"fmt"
"io/ioutil"
"log"
"strconv"
"strings"
)
const (
MaxDays = 256
PartOneDays = 80
MaxTimer = 8
)
func shiftArrayLeft(arr *[MaxTimer + 1]int64) {
for i := 1; i < len(arr)-1; i++ {
arr[i-1] = arr[i]
arr[i] = arr[i+1]
}
}
func calcSum(arr *[MaxTimer + 1]int64) (sum int64) {
for _, v := range arr {
sum += v
}
return
}
func main() {
file, err := ioutil.ReadFile("input.txt")
if err != nil {
log.Fatal(err)
}
inputStrs := strings.Split(strings.Trim(string(file), "\n"), ",")
var dayCounts [MaxTimer + 1]int64
for _, v := range inputStrs {
num, _ := strconv.Atoi(v)
dayCounts[num]++
}
for daysPassed := 0; daysPassed < MaxDays; daysPassed++ {
if daysPassed == PartOneDays {
fmt.Println(calcSum(&dayCounts))
}
newSpawn := dayCounts[0]
shiftArrayLeft(&dayCounts)
dayCounts[6] += newSpawn
dayCounts[8] = newSpawn
}
fmt.Println(calcSum(&dayCounts))
}
Loading…
Cancel
Save