package one import ( "bufio" "bytes" "io" "github.com/onyx-and-iris/aoc2024/day-02/internal/util" ) type comparator func([]int, int) bool func Solve(data []byte) (int, error) { r := bytes.NewReader(data) sum := parseLines(r) return sum, nil } func parseLines(r io.Reader) int { var sum int scanner := bufio.NewScanner(r) for scanner.Scan() { nums := util.IntsFromString(scanner.Text()) cmpIncrease := func(nums []int, i int) bool { return nums[i-1] >= nums[i] } cmpDecrease := func(nums []int, i int) bool { return nums[i-1] <= nums[i] } if check(nums, cmpIncrease) || check(nums, cmpDecrease) { sum++ } } return sum }