-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpart1.go
47 lines (39 loc) · 777 Bytes
/
part1.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package day04
import (
"github.com/patrick22414/Advent-of-Code-2024/readinput"
)
const XMAS = "XMAS"
func Part1() int {
var m []string
for line := range readinput.ReadInput("./input.txt") {
m = append(m, line)
}
count := 0
for i := range m {
for j := range m[0] {
if m[i][j] != XMAS[0] {
continue
}
for dx := -1; dx <= 1; dx++ {
for dy := -1; dy <= 1; dy++ {
if dx == 0 && dy == 0 {
continue
}
// for each of the 8 directions
if i+dx*3 < 0 || i+dx*3 >= len(m) {
continue
}
if j+dy*3 < 0 || j+dy*3 >= len(m[0]) {
continue
}
if m[i+dx][j+dy] == XMAS[1] &&
m[i+dx*2][j+dy*2] == XMAS[2] &&
m[i+dx*3][j+dy*3] == XMAS[3] {
count++
}
}
}
}
}
return count
}