Compare commits

...

2 Commits

Author SHA1 Message Date
6da7eb85a0 p2 + clean up 2024-12-01 07:27:59 +02:00
e331b926eb p1 2024-12-01 07:21:16 +02:00
2 changed files with 73 additions and 0 deletions

3
2024/01/go.mod Normal file
View File

@@ -0,0 +1,3 @@
module main
go 1.23.3

70
2024/01/main.go Normal file
View File

@@ -0,0 +1,70 @@
package main
import (
"fmt"
"os"
"sort"
"strconv"
"strings"
)
func main() {
lines := parse()
// var first = 0
// var last = 0
var left = []int{}
var right = []int{}
for _, line := range lines {
if line == "" {
continue
}
nums := strings.Fields(line)
l, _ := strconv.Atoi(nums[0])
r, _ := strconv.Atoi(nums[1])
left = append(left, l)
right = append(right, r)
}
sort.Ints(left)
sort.Ints(right)
var sum = 0
for i := 0; i < len(left); i++ {
var diff = right[i] - left[i]
if diff < 0 {
diff *= -1
}
sum += diff
}
var similarity = 0
for i := 0; i < len(left); i++ {
var count = 0
for j := 0; j < len(right); j++ {
if left[i] == right[j] {
count += 1
}
}
similarity += count * left[i]
}
fmt.Println(sum)
fmt.Println(similarity)
}
func parse() []string {
filePath := os.Args[1]
data, _ := os.ReadFile(filePath)
chunks := strings.Split(string(data), "\n")
return chunks
}