Skip to content

Commit 06b845d

Browse files
committed
day17: start solving part 1
1 parent 62babd9 commit 06b845d

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed

Diff for: day18/example.txt

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
5,4
2+
4,2
3+
4,5
4+
3,0
5+
2,1
6+
6,3
7+
2,4
8+
1,5
9+
0,6
10+
3,3
11+
2,6
12+
5,1
13+
1,2
14+
5,5
15+
2,5
16+
6,5
17+
1,4
18+
0,4
19+
6,4
20+
1,1
21+
6,1
22+
1,0
23+
0,5
24+
1,6
25+
2,0

Diff for: day18/main.go

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"flag"
6+
"fmt"
7+
"os"
8+
"regexp"
9+
10+
"github.com/fxnn/adventofcode2024/util"
11+
)
12+
13+
const (
14+
CORRUPTED = -1
15+
)
16+
17+
func printSpace(space [][]int) {
18+
for y := range space {
19+
for x := range space[y] {
20+
fmt.Printf("%2d ", space[y][x])
21+
}
22+
fmt.Println()
23+
}
24+
fmt.Println()
25+
}
26+
27+
func main() {
28+
var size = flag.Int("max", 70, "coordinates have range [0,max]")
29+
var count = flag.Int("count", 1024, "number of bytes that have fallen")
30+
flag.Parse()
31+
var space = make([][]int, *size+1)
32+
for y := range space {
33+
space[y] = make([]int, *size+1)
34+
}
35+
36+
var scanner = bufio.NewScanner(os.Stdin)
37+
var pattern = regexp.MustCompile(`^(\d+),(\d+)$`)
38+
39+
var fallen int
40+
for scanner.Scan() && fallen < *count {
41+
var line = scanner.Text()
42+
var matches = pattern.FindStringSubmatch(line)
43+
var x, y int
44+
if len(matches) > 0 {
45+
x = util.Atoi(matches[1])
46+
y = util.Atoi(matches[2])
47+
space[y][x] = CORRUPTED
48+
fallen++
49+
}
50+
}
51+
if err := scanner.Err(); err != nil {
52+
fmt.Fprintf(os.Stderr, "Error: %s\n", err)
53+
os.Exit(1)
54+
}
55+
56+
printSpace(space)
57+
}

0 commit comments

Comments
 (0)