advent-of-code-2021/1/part2.go
2021-12-01 16:44:15 +01:00

38 lines
648 B
Go

package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
count := 0
windows := [4]int{0, 0, 0, 0}
i := 1
s := bufio.NewScanner(os.Stdin)
for s.Scan() {
currentWindow := i % 4
nextWindow := (i + 1) % 4
value, _ := strconv.Atoi(s.Text())
for j := 0; j < 4; j++ {
if j != currentWindow {
windows[j] += value
}
}
//fmt.Println(value, windows, currentWindow, nextWindow, windows[nextWindow], windows[currentWindow])
// skip the first 3 values to populate the windows
if i > 3 && windows[nextWindow] > windows[currentWindow] {
count++
}
windows[currentWindow] = 0
i++
}
fmt.Println(count)
}