|
|
|
|
@ -1,6 +1,11 @@
|
|
|
|
|
package day15
|
|
|
|
|
|
|
|
|
|
import "strconv"
|
|
|
|
|
import (
|
|
|
|
|
"strconv"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"gitea.paas.celticinfo.fr/oabrivard/aoc2023/utils"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func hash(bytes []byte) int {
|
|
|
|
|
val := 0
|
|
|
|
|
@ -169,3 +174,20 @@ func SumBoxes(line string) int {
|
|
|
|
|
|
|
|
|
|
return sum
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Hash(bytes []byte) int {
|
|
|
|
|
return utils.Reduce(bytes, 0, func(acc int, curr byte) int {
|
|
|
|
|
return (acc + int(curr)) * 17 % 256
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Part1(line string) int {
|
|
|
|
|
/*
|
|
|
|
|
fmt.Println(utils.Reduce(
|
|
|
|
|
utils.Map(strings.Split(line, ","), func(step string) int { return Hash([]byte(step)) }),
|
|
|
|
|
0,
|
|
|
|
|
func(acc int, curr int) int { return acc + curr }))
|
|
|
|
|
*/
|
|
|
|
|
hashes := utils.Map(strings.Split(line, ","), func(step string) int { return Hash([]byte(step)) })
|
|
|
|
|
return utils.Reduce(hashes, 0, func(acc int, curr int) int { return acc + curr })
|
|
|
|
|
}
|
|
|
|
|
|