42 lines
583 B
Go
42 lines
583 B
Go
package day09
|
|
|
|
import (
|
|
"sort"
|
|
)
|
|
|
|
func isSumOfPreviousNumbers(current int, previous []int) bool {
|
|
for _, n1 := range previous {
|
|
for _, n2 := range previous {
|
|
if n1+n2 == current {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func findAnomalySum(anomaly int, numbers []int) int {
|
|
for k1 := range numbers {
|
|
sum := 0
|
|
|
|
for k2, n2 := range numbers[k1:] {
|
|
sum += n2
|
|
|
|
if sum > anomaly {
|
|
break
|
|
}
|
|
|
|
if sum == anomaly {
|
|
targetSet := numbers[k1 : k1+k2+1]
|
|
|
|
sort.Ints(targetSet)
|
|
|
|
return targetSet[0] + targetSet[len(targetSet)-1]
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0
|
|
}
|