This commit is contained in:
2025-12-02 18:23:02 +00:00
parent c82f1c5b30
commit 9613baa5eb
4 changed files with 145 additions and 67 deletions

59
2025/go/day02/day02.go Normal file
View File

@@ -0,0 +1,59 @@
package day02
import (
"adventofcode2025/utils"
"fmt"
"strings"
)
func Part1(input string) int {
ranges := strings.Split(input, ",")
count := 0
for _, r := range ranges {
min_s, max_s := strings.Split(r, "-")[0], strings.Split(r, "-")[1]
min := utils.MustAtoi(min_s)
max := utils.MustAtoi(max_s)
for i := min; i <= max; i++ {
s := fmt.Sprintf("%d", i)
if len(s)%2 != 0 {
continue
}
if s[:len(s)/2] != s[len(s)/2:] {
continue
}
count += utils.MustAtoi(s)
}
}
return count
}
func Part2(input string) int {
ranges := strings.Split(input, ",")
count := 0
for _, r := range ranges {
min_s, max_s := strings.Split(r, "-")[0], strings.Split(r, "-")[1]
min := utils.MustAtoi(min_s)
max := utils.MustAtoi(max_s)
for i := min; i <= max; i++ {
s := fmt.Sprintf("%d", i)
for numDigits := 1; numDigits <= len(s)/2; numDigits++ {
if len(s)%numDigits != 0 {
continue
}
found := true
for j := 1; j < len(s)/numDigits; j++ {
if s[0:numDigits] != s[j*numDigits:(j+1)*numDigits] {
found = false
break
}
}
if found {
count += utils.MustAtoi(s)
break
}
}
}
}
return count
}