2020 Day 3 Done!

This commit is contained in:
2020-12-03 08:16:00 -06:00
parent 0642c298f3
commit 37a935d038
5 changed files with 428 additions and 0 deletions

44
2020/day03/main.go Normal file
View File

@@ -0,0 +1,44 @@
package main
import (
"fmt"
h "git.bullercodeworks.com/brian/adventofcode/helpers"
)
func main() {
inp := h.StdinToStringSlice()
total := 1
for _, slope := range []h.Coordinate{
{X: 1, Y: 1},
{X: 3, Y: 1},
{X: 5, Y: 1},
{X: 7, Y: 1},
{X: 1, Y: 2},
} {
field := h.StringSliceToCoordByteMap(inp)
val := countTrees(field, slope.X, slope.Y)
total = total * val
fmt.Println(slope.X, slope.Y, ":", val, "Trees")
}
fmt.Println("Total:", total)
}
func countTrees(field h.CoordByteMap, x, y int) int {
trees := 0
pos := h.Coordinate{X: x, Y: y}
for pos.Y < field.Height {
if pos.X > field.Width {
pos.X = pos.X - field.Width - 1
}
if field.Get(pos) == '#' {
trees++
field.Put(pos, 'X')
} else {
field.Put(pos, 'O')
}
pos.Y = pos.Y + y
pos.X = pos.X + x
}
return trees
}