Files
advent-of-code/internal/2016/DayThree/code.go
2025-12-09 19:24:30 +01:00

50 lines
942 B
Go

package daythree
import (
"advent-of-code/internal/registry"
"fmt"
"os"
"strings"
)
func init() {
registry.Register("2016D3", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) [][3]int {
content, _ := os.ReadFile(filepath)
lines := strings.Split(string(content), "\n")
var result [][3]int
for _, line := range lines {
var a, b, c int
fmt.Sscanf(line, "%d %d %d", &a, &b, &c)
result = append(result, [3]int{a, b, c})
}
return result
}
func PartOne(data [][3]int) int {
count := 0
for _, triangle := range data {
a, b, c := triangle[0], triangle[1], triangle[2]
if a+b > c && a+c > b && b+c > a {
count++
}
}
return count
}
func PartTwo(data [][3]int) int {
count := 0
for idx := 0; idx < len(data)-2; idx += 3 {
for column := range 3 {
a, b, c := data[idx][column], data[idx+1][column], data[idx+2][column]
if a+b > c && a+c > b && b+c > a {
count++
}
}
}
return count
}