2025 Day 4 Complete!

This commit is contained in:
2025-12-04 07:46:53 -06:00
parent c1bb5f02bb
commit 2f05062091
5 changed files with 436 additions and 2 deletions

49
2025/day04/main.go Normal file
View File

@@ -0,0 +1,49 @@
package main
import (
"fmt"
h "git.bullercodeworks.com/brian/adventofcode/helpers"
)
func main() {
inp := h.StdinToStringSlice()
part1(inp)
part2(inp)
}
func part1(inp []string) {
var movable int
m := h.StringSliceToCoordByteMap(inp)
for c := range m.Field {
if m.Field[c] != '@' {
continue
}
if len(m.FindAdjacent(c, '@')) < 4 {
movable++
}
}
fmt.Println("# Part 1")
fmt.Println("Movable Rolls:",movable)
}
func part2(inp []string) {
var movable int
m := h.StringSliceToCoordByteMap(inp)
rolls := m.FindAll('@')
rollCnt := len(rolls)
prevRollCnt := 0
for rollCnt != prevRollCnt {
prevRollCnt = rollCnt
for i := range rolls {
if len(m.FindAdjacent(rolls[i], '@')) < 4 {
m.Put(rolls[i], '.')
movable++
}
}
rolls = m.FindAll('@')
rollCnt = len(rolls)
}
fmt.Println("# Part 2")
fmt.Println("Movable Rolls:",movable)
}