Files
2025-11-28 16:47:56 +01:00

49 lines
1.1 KiB
Go

package daytwo
import (
"advent-of-code/internal/registry"
"os"
"strconv"
"strings"
)
func init() {
registry.Register("2015D2", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
total := 0
for _, line := range data {
parts := strings.Split(line, "x")
length, _ := strconv.Atoi(parts[0])
width, _ := strconv.Atoi(parts[1])
height, _ := strconv.Atoi(parts[2])
total += 2*length*width + 2*width*height + 2*height*length + min(length*width, width*height, height*length)
}
return total
}
func PartTwo(data []string) int {
total := 0
for _, line := range data {
parts := strings.Split(line, "x")
length, _ := strconv.Atoi(parts[0])
width, _ := strconv.Atoi(parts[1])
height, _ := strconv.Atoi(parts[2])
smallest := min(length, width, height)
middle := length + width + height - smallest - max(length, width, height)
perimeter := 2 * (smallest + middle)
volume := length * width * height
total += perimeter + volume
}
return total
}