day 6
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…
Reference in New Issue