Skip to content

Commit 219fa1a

Browse files
authored
2024 Day 3 (#73)
1 parent 6866430 commit 219fa1a

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

2024/03/JalonSolov.v

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import regex
2+
import os
3+
4+
instructions := os.read_file('instructions-part2.input')!
5+
6+
mut mul_re := regex.regex_opt(r"(mul\(\d{1,3},\d{1,3}\))|(do(n't)?\(\))")!
7+
mut mul_total := 0
8+
mut enabled_total := 0
9+
10+
mut enabled := true
11+
12+
mut index := 0
13+
14+
for index < instructions.len {
15+
start, end := mul_re.find_from(instructions, index)
16+
if start >= 0 {
17+
group := instructions[start..end]
18+
match group[0] {
19+
`m` {
20+
result := group[4..group.index(',')?].int() * group[group.index(',')? + 1..].int()
21+
mul_total += result
22+
if enabled {
23+
enabled_total += result
24+
}
25+
}
26+
`d` {
27+
enabled = (group == 'do()')
28+
}
29+
else {
30+
// should never happen
31+
}
32+
}
33+
index = end
34+
} else {
35+
break
36+
}
37+
}
38+
39+
println('Part 1: ${mul_total}')
40+
println('Part 2: ${enabled_total}')

known/2024/03/JalonSolov.out

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Part 1: 161
2+
Part 2: 48

0 commit comments

Comments
 (0)