68 lines
1.0 KiB
Go
68 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func original() {
|
|
fmt.Println("Original Code")
|
|
|
|
file, err := os.Open("./input.txt")
|
|
if err != nil {
|
|
log.Fatal("Error when opening input.json: ", err)
|
|
}
|
|
|
|
fileScanner := bufio.NewScanner(file)
|
|
fileScanner.Split(bufio.ScanLines)
|
|
|
|
var (
|
|
listA, listB []int
|
|
)
|
|
|
|
for fileScanner.Scan() {
|
|
slice := strings.Fields(fileScanner.Text())
|
|
num1, _ := strconv.Atoi(slice[0])
|
|
num2, _ := strconv.Atoi(slice[1])
|
|
listA = append(listA, num1)
|
|
listB = append(listB, num2)
|
|
}
|
|
|
|
file.Close()
|
|
|
|
// Part 1
|
|
sort.Ints(listA)
|
|
sort.Ints(listB)
|
|
|
|
sumPart1 := 0
|
|
for i := 0; i < len(listA); i++ {
|
|
if listA[i] > listB[i] {
|
|
sumPart1 += listA[i] - listB[i]
|
|
} else {
|
|
sumPart1 += listB[i] - listA[i]
|
|
}
|
|
}
|
|
|
|
fmt.Println("Sum of Part 1: ", sumPart1)
|
|
|
|
// Part 2
|
|
sumPart2 := 0
|
|
|
|
for _, v1 := range listA {
|
|
counter := 0
|
|
for _, v2 := range listB {
|
|
if v1 == v2 {
|
|
counter++
|
|
}
|
|
}
|
|
sumPart2 += counter * v1
|
|
}
|
|
|
|
fmt.Println("Sum of Part 2: ", sumPart2)
|
|
}
|