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