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

59 lines
952 B
Go
Raw Permalink Normal View History

2023-11-14 23:33:55 +01:00
package main
2023-11-15 13:28:22 +01:00
import (
"fmt"
)
2023-11-14 23:33:55 +01:00
func main() {
2023-11-15 13:28:22 +01:00
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)
}
2023-11-14 23:33:55 +01:00
}