mirror of
https://github.com/onyx-and-iris/aoc2024.git
synced 2025-01-09 14:20:48 +00:00
rename withComparator to withDampener. We're using comparators regardless...
add type definition dampener
This commit is contained in:
parent
d321e6c977
commit
4416dab080
@ -2,9 +2,9 @@ package one
|
||||
|
||||
import "math"
|
||||
|
||||
func check(nums []int, comparator comparator) bool {
|
||||
func check(nums []int, cmp comparator) bool {
|
||||
for i := 1; i < len(nums); i++ {
|
||||
if comparator(nums, i) || !isSafe(nums[i-1], nums[i]) {
|
||||
if cmp(nums, i) || !isSafe(nums[i-1], nums[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
@ -5,17 +5,17 @@ import (
|
||||
"slices"
|
||||
)
|
||||
|
||||
func withComparator(nums []int, comparator comparator, count int) bool {
|
||||
func withDampener(nums []int, cmp comparator, count int) bool {
|
||||
if count > 1 {
|
||||
return false
|
||||
}
|
||||
|
||||
for i := 1; i < len(nums); i++ {
|
||||
if comparator(nums, i) || !isSafe(nums[i-1], nums[i]) {
|
||||
if cmp(nums, i) || !isSafe(nums[i-1], nums[i]) {
|
||||
count++
|
||||
removeFirst, removeSecond := nextLevels(nums, i)
|
||||
return withComparator(removeFirst, comparator, count) ||
|
||||
withComparator(removeSecond, comparator, count)
|
||||
return withDampener(removeFirst, cmp, count) ||
|
||||
withDampener(removeSecond, cmp, count)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ func TestIncreasedWithDampener(t *testing.T) {
|
||||
|
||||
for name, tc := range tt {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
got := withComparator(tc.input, cmp, 0)
|
||||
got := withDampener(tc.input, cmp, 0)
|
||||
assert.Equal(t, tc.want, got)
|
||||
})
|
||||
}
|
||||
@ -54,7 +54,7 @@ func TestDecreasedWithDampener(t *testing.T) {
|
||||
|
||||
for name, tc := range tt {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
got := withComparator(tc.input, cmp, 0)
|
||||
got := withDampener(tc.input, cmp, 0)
|
||||
assert.Equal(t, tc.want, got)
|
||||
})
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
)
|
||||
|
||||
type comparator func([]int, int) bool
|
||||
type dampener func([]int, comparator, int) bool
|
||||
|
||||
func Solve(data []byte) (int, error) {
|
||||
r := bytes.NewReader(data)
|
||||
@ -31,7 +32,7 @@ func parseLines(r io.Reader) int {
|
||||
return nums[i-1] <= nums[i]
|
||||
}
|
||||
|
||||
if check(withComparator, nums, cmpIncrease) || check(withComparator, nums, cmpDecrease) {
|
||||
if check(withDampener, nums, cmpIncrease) || check(withDampener, nums, cmpDecrease) {
|
||||
sum++
|
||||
}
|
||||
}
|
||||
@ -39,7 +40,7 @@ func parseLines(r io.Reader) int {
|
||||
return sum
|
||||
}
|
||||
|
||||
func check(fn func([]int, comparator, int) bool, nums []int, comparator comparator) bool {
|
||||
func check(fn dampener, nums []int, cmp comparator) bool {
|
||||
var count int
|
||||
return fn(nums, comparator, count)
|
||||
return fn(nums, cmp, count)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user