Files
advent-of-code-2025/cmd/02/main.go
T

61 lines
1.0 KiB
Go

package main
import (
"strconv"
"strings"
"github.com/StevanFreeborn/advent-of-code-2025/internal/file"
)
const SeparatorCharacter = ","
const RangeSeparatorCharacter = "-"
type Range struct {
Start int64
End int64
}
func SolvePartOne(filePath string) int64 {
input := file.ReadAllText(filePath)
strRanges := strings.SplitSeq(input, SeparatorCharacter)
rngs := []Range{}
for r := range strRanges {
parts := strings.Split(strings.TrimSpace(r), "-")
start, _ := strconv.ParseInt(parts[0], 10, 64)
end, _ := strconv.ParseInt(parts[1], 10, 64)
rng := Range{
Start: start,
End: end,
}
rngs = append(rngs, rng)
}
total := int64(0)
for _, rng := range rngs {
for id := rng.Start; id <= rng.End; id++ {
idStr := strconv.FormatInt(id, 10)
idLength := len(idStr)
if idLength%2 != 0 {
continue
}
midpoint := idLength / 2
firstHalf := idStr[:midpoint]
secondHalf := idStr[midpoint:]
if firstHalf != secondHalf {
continue
}
total += id
}
}
return total
}