Browse Source

solve day 4 part 1

master
Alexander Avery 3 weeks ago
parent
commit
05763e8c43
  1. 47
      2024/day04.go

47
2024/day04.go

@ -1,13 +1,56 @@
package adventoc2024 package adventoc2024
import "io" import (
"bufio"
"io"
)
type Day4 struct{} type Day4 struct{}
func (d Day4) Part1(r io.Reader) string { func (d Day4) Part1(r io.Reader) string {
return "" wordsearch := make([][]rune, 0)
s := bufio.NewScanner(r)
var sum int
for s.Scan() {
line := []rune(s.Text())
wordsearch = append(wordsearch, line)
}
search := make([]rune, 4)
for startx := range wordsearch {
for starty := range wordsearch[startx] {
for dx := -1; dx < 2; dx++ {
for dy := -1; dy < 2; dy++ {
for i := 0; i < 4; i++ {
x := startx + dx*i
y := starty + dy*i
search[i] = runeAt(wordsearch, x, y)
}
if string(search) == "XMAS" {
sum++
}
}
}
}
}
return printi(sum)
} }
func (d Day4) Part2(r io.Reader) string { func (d Day4) Part2(r io.Reader) string {
return "" return ""
} }
func runeAt(r [][]rune, x, y int) rune {
if x >= len(r) || x < 0 {
return rune(0)
}
if y >= len(r[x]) || y < 0 {
return rune(0)
}
return r[x][y]
}

Loading…
Cancel
Save