diff options
Diffstat (limited to '2024/go/src/day1/main.go')
| -rw-r--r-- | 2024/go/src/day1/main.go | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/2024/go/src/day1/main.go b/2024/go/src/day1/main.go deleted file mode 100644 index 17cfa54..0000000 --- a/2024/go/src/day1/main.go +++ /dev/null @@ -1,77 +0,0 @@ -package main - -import ( - "fmt" - "os" - "sort" - "strconv" - "strings" -) - -func AbsInt(x int) int { - if x < 0 { - return -x - } - return x -} - -func solve_part_one(data string) int { - var list_1 []int - var list_2 []int - - ans := 0 - for _, line := range strings.Split(data, "\n") { - if len(line) > 0 { - elements := strings.Split(line, " ") - ele1, _ := strconv.Atoi(elements[0]) - ele2, _ := strconv.Atoi(elements[1]) - list_1 = append(list_1, ele1) - list_2 = append(list_2, ele2) - } - } - sort.Ints(list_1) - sort.Ints(list_2) - for i := range len(list_1) { - ans += AbsInt(list_1[i] - list_2[i]) - } - return ans -} - -func solve_part_two(data string) int { - var list_1 []int - var list_2 []int - - ans := 0 - for _, line := range strings.Split(data, "\n") { - if len(line) > 0 { - elements := strings.Split(line, " ") - ele1, _ := strconv.Atoi(elements[0]) - ele2, _ := strconv.Atoi(elements[1]) - list_1 = append(list_1, ele1) - list_2 = append(list_2, ele2) - } - } - counts := make(map[int]int) - - for _, num := range list_2 { - counts[num]++ - } - for i := range len(list_1) { - ans += list_1[i] * counts[list_1[i]] - } - return ans -} - -func main() { - test_1, _ := os.ReadFile("../input/day1.test") - test_2, _ := os.ReadFile("../input/day1_2.test") - prod, _ := os.ReadFile("../input/day_1.prod") - content_test_1 := string(test_1) - content_test_2 := string(test_2) - content_prod := string(prod) - - fmt.Println("Part_1 test: ", solve_part_one(content_test_1)) - fmt.Println("Part_1 prod: ", solve_part_one(content_prod)) - fmt.Println("Part_2 test: ", solve_part_two(content_test_2)) - fmt.Println("Part_2 prod: ", solve_part_two(content_prod)) -} |
