advent_of_code/go/cmd/part2/main.go

47 lines
708 B
Go

package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
left := map[int]int{};
right := map[int]int{};
reader := bufio.NewReader(os.Stdin)
for {
raw, _, _ := reader.ReadLine()
line := string(raw)
if strings.Trim(line, " ") == "" {
break
}
values := strings.Split(line, " ")
l, _ := strconv.Atoi(values[0])
r, _ := strconv.Atoi(values[1])
left[l] = left[l] + 1
right[r] = right[r] + 1
}
ans := part2(left, right)
fmt.Println("", ans)
}
func part2(left map[int]int, right map[int]int) int {
sum := 0
for key, l_count := range left {
count := right[key]
sum += l_count * count * key
}
return sum;
}