Alexander Avery
3 weeks ago
1 changed files with 45 additions and 2 deletions
@ -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…
Reference in new issue