Advent-of-Code/2021/day1/main.go

58 lines
952 B
Go

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)
}
}