Files
adventofcode/2024/go/day01/day01.go
2024-12-03 07:24:42 +00:00

55 lines
1.0 KiB
Go

package day01
import (
"adventofcode2024/utils"
"sort"
"strings"
)
func Part1(input string) int {
var list1, list2 []int
num := 0
lines := strings.Split(input, "\n")
for _, line := range lines {
fields := strings.Fields(line)
// Convert the fields to integers
val1 := utils.MustAtoi(fields[0])
val2 := utils.MustAtoi(fields[1])
// Append to the respective slices
list1 = append(list1, val1)
list2 = append(list2, val2)
}
sort.Ints(list1)
sort.Ints(list2)
for i := 0; i < len(list1); i++ {
num += utils.Abs(list1[i] - list2[i])
}
return num
}
func Part2(input string) int {
var list1 []int
list2 := make(map[int]int)
num := 1
lines := strings.Split(input, "\n")
for _, line := range lines {
fields := strings.Fields(line)
// Convert the fields to integers
val1 := utils.MustAtoi(fields[0])
val2 := utils.MustAtoi(fields[1])
// Append to the respective slices
list1 = append(list1, val1)
list2[val2]++
}
for i := 0; i < len(list1); i++ {
num += list1[i] * list2[list1[i]]
}
return num
}