Skip to content

Commit b078602

Browse files
committed
feat(angch/2025-07): Initial
1 parent 41167d4 commit b078602

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

angch/2025-07/main.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"log"
7+
"os"
8+
"time"
9+
)
10+
11+
func day7(file string) (part1, part2 int) {
12+
f, err := os.Open(file)
13+
if err != nil {
14+
log.Fatal(err)
15+
}
16+
defer f.Close()
17+
scanner := bufio.NewScanner(f)
18+
19+
scanner.Scan()
20+
t := scanner.Bytes()
21+
beams := map[int]int{}
22+
for x, c := range t {
23+
if c == 'S' {
24+
beams[x] = 1
25+
}
26+
}
27+
28+
part2 = 1
29+
for scanner.Scan() {
30+
t := scanner.Bytes()
31+
rest := 0
32+
for x, c := range t {
33+
if c == '^' && beams[x] > 0 {
34+
split := 0
35+
if x > 0 {
36+
beams[x-1] += beams[x]
37+
split += beams[x]
38+
}
39+
if x < len(t) {
40+
beams[x+1] += beams[x]
41+
split += beams[x]
42+
}
43+
delete(beams, x)
44+
rest++
45+
part1++
46+
}
47+
}
48+
if rest == 0 {
49+
sum := 0
50+
for _, i := range beams {
51+
sum += i
52+
}
53+
// fmt.Println(beams, len(beams), sum)
54+
part2 = sum
55+
}
56+
}
57+
58+
return
59+
}
60+
61+
func main() {
62+
log.SetFlags(log.Lshortfile | log.LstdFlags)
63+
t1 := time.Now()
64+
part1, part2 := day7("test.txt")
65+
fmt.Println(part1, part2)
66+
if part1 != 21 || part2 != 40 {
67+
log.Fatal("Test failed ", part1, part2)
68+
}
69+
70+
part1, part2 = day7("input.txt")
71+
fmt.Println(part1, part2)
72+
fmt.Println("Elapsed time:", time.Since(t1))
73+
}

angch/2025-07/test.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.......S.......
2+
...............
3+
.......^.......
4+
...............
5+
......^.^......
6+
...............
7+
.....^.^.^.....
8+
...............
9+
....^.^...^....
10+
...............
11+
...^.^...^.^...
12+
...............
13+
..^...^.....^..
14+
...............
15+
.^.^.^.^.^...^.
16+
...............

0 commit comments

Comments
 (0)