Alexander Avery
3 weeks ago
1 changed files with 45 additions and 2 deletions
@ -1,13 +1,56 @@ |
|||
package adventoc2024 |
|||
|
|||
import "io" |
|||
import ( |
|||
"bufio" |
|||
"io" |
|||
) |
|||
|
|||
type Day4 struct{} |
|||
|
|||
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 { |
|||
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…
Reference in new issue