50 lines
909 B
Go

package main
import (
"fmt"
"strconv"
"time"
)
func main() {
fmt.Println("Day 9")
start := time.Now()
inputString := "1113122113"
input := []int64{}
for _, c := range inputString {
stringChar, _ := strconv.Atoi(string(c))
input = append(input, int64(stringChar))
}
//Change 40 to 50 for part 2
for rounds := 0; rounds < 40; rounds++ {
lastNum := input[0]
var counter int64 = 1
newNumbers := []int64{}
for i := 1; i < len(input); i++ {
if input[i] != lastNum {
newNumbers = append(newNumbers, counter)
newNumbers = append(newNumbers, lastNum)
counter = 1
lastNum = input[i]
} else {
counter++
}
}
newNumbers = append(newNumbers, counter)
newNumbers = append(newNumbers, lastNum)
input = newNumbers
}
elapsed := time.Since(start)
fmt.Printf("Part 1: %v %v \n", len(input), elapsed)
fmt.Printf("Part 2: %v %v \n", len(input), elapsed)
}