package main import ( "fmt" ) func main() { data := LoadData("./data") c := CountIncreases(&data) fmt.Println(c) data = MutateDataPart2(data) c = CountIncreases(&data) fmt.Println(c) } func MutateDataPart2(data []DataEntry) []DataEntry { var result []DataEntry lastInt := 0 for i := range data { if i >= len(data)-2 { continue } value := data[i].Value + data[i+1].Value + data[i+2].Value var status Status switch { case lastInt == 0: status = Nothing case lastInt < value: status = Increased case lastInt > value: status = Decreased case lastInt == value: status = Equal } lastInt = value result = append(result, DataEntry{ Value: value, Status: status, }) } return result } func CountIncreases(d *[]DataEntry) int { var count int for _, d := range *d { if d.Status == Increased { count++ } } return count } func checkErr(err error) { if err != nil { fmt.Println(err) } }