Compare commits

..

2 Commits

Author SHA1 Message Date
903b9e2bc7 feat: solve part one 2025-12-22 10:19:11 +01:00
9cd6796996 test: add unit test for part one 2025-12-22 10:19:04 +01:00
2 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
package daytwo
import (
"advent-of-code/internal/registry"
"os"
"strconv"
"strings"
)
func init() {
registry.Register("2017D2", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) [][]int {
content, _ := os.ReadFile(filepath)
lines := strings.Split(string(content), "\n")
result := make([][]int, 0, len(lines))
for _, line := range lines {
fields := strings.Fields(line)
row := make([]int, 0, len(fields))
for _, field := range fields {
num, _ := strconv.Atoi(field)
row = append(row, num)
}
result = append(result, row)
}
return result
}
func PartOne(data [][]int) int {
sum := 0
for _, row := range data {
min, max := row[0], row[0]
for _, value := range row[1:] {
if value < min {
min = value
}
if value > max {
max = value
}
}
sum += max - min
}
return sum
}
func PartTwo(data [][]int) int {
return 0
}

View File

@@ -0,0 +1,17 @@
package daytwo
import "testing"
var testInput = [][]int{
{5, 1, 9, 5},
{7, 5, 3},
{2, 4, 6, 8},
}
func TestPartOne(t *testing.T) {
got := PartOne(testInput)
expected := 18
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}