2021 Day 7 Complete!

This commit is contained in:
2021-12-07 08:09:58 -06:00
parent dba8cc0e0f
commit 5b7a73e883
4 changed files with 98 additions and 0 deletions

79
2021/day07/main.go Normal file
View File

@@ -0,0 +1,79 @@
package main
import (
"fmt"
"strings"
h "git.bullercodeworks.com/brian/adventofcode/helpers"
)
func main() {
inp := strings.Split(h.StdinToString(), ",")
part1(inp)
fmt.Println()
part2(inp)
}
func part1(inp []string) {
fmt.Println("# Part 1")
var crabs []int
min := h.MAX_INT
max := h.MIN_INT
crabMap := make(map[int]int)
for i := range inp {
c := h.Atoi(inp[i])
if c < min {
min = c
}
if c > max {
max = c
}
crabMap[c] = crabMap[c] + 1
crabs = append(crabs, c)
}
fuelMap := make(map[int]int)
var minFuelMov int
minFuelVal := h.MAX_INT
for i := min; i <= max; i++ {
for c := range crabMap {
fuelMap[i] += crabMap[c] * h.Abs(i-c)
}
if fuelMap[i] < minFuelVal {
minFuelMov = i
minFuelVal = fuelMap[i]
}
}
fmt.Println("Minimum Fuel Requirement:", minFuelVal, "at", minFuelMov)
}
func part2(inp []string) {
fmt.Println("# Part 2")
var crabs []int
min := h.MAX_INT
max := h.MIN_INT
crabMap := make(map[int]int)
for i := range inp {
c := h.Atoi(inp[i])
if c < min {
min = c
}
if c > max {
max = c
}
crabMap[c] = crabMap[c] + 1
crabs = append(crabs, c)
}
fuelMap := make(map[int]int)
var minFuelMov int
minFuelVal := h.MAX_INT
for i := min; i <= max; i++ {
for c := range crabMap {
fuelMap[i] += crabMap[c] * h.Fact(h.Abs(i-c))
}
if fuelMap[i] < minFuelVal {
minFuelMov = i
minFuelVal = fuelMap[i]
}
}
fmt.Println("Minimum Fuel Requirement:", minFuelVal, "at", minFuelMov)
}