Skip to content

Commit

Permalink
2024 day 3 part 1 and 2
Browse files Browse the repository at this point in the history
  • Loading branch information
lancelote committed Dec 3, 2024
1 parent 7e70e45 commit 6c32d3e
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- 2021 - ★★★★★ ★★★★★ ★★★★★ ★★★
- 2022 - ★★★★★ ★★★★★ ★★★★★ ★☆
- 2023 - ★★★★★ ★★★★★ ★★★★★ ★★★☆
- 2024 - ★★
- 2024 - ★★

## How to use

Expand Down
8 changes: 8 additions & 0 deletions src/year2024/day03a.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""2024 - Day 3 Part 1: Mull It Over"""

import re


def solve(task: str) -> int:
result = re.findall(r"mul\((\d+),(\d+)\)", task)
return sum(int(a) * int(b) for a, b in result)
24 changes: 24 additions & 0 deletions src/year2024/day03b.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""2024 - Day 3 Part 2: Mull It Over"""

import re


def solve(task: str) -> int:
result = re.findall(r"mul\((\d+),(\d+)\)|(do\(\))|(don't\(\))", task)

ans = 0
skip = False

for a, b, do, dnt in result:
if dnt:
skip = True
elif do:
skip = False
elif skip:
continue
else:
a = int(a)
b = int(b)
ans += a * b

return ans
8 changes: 8 additions & 0 deletions tests/src/year2024/test_day03a.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""2024 - Day 3 Part 1: Mull It Over"""

from src.year2024.day03a import solve


def test_solve():
task = "xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))"
assert solve(task) == 161
8 changes: 8 additions & 0 deletions tests/src/year2024/test_day03b.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""2024 - Day 3 Part 2: Mull It Over"""

from src.year2024.day03b import solve


def test_solve():
task = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))"
assert solve(task) == 48

0 comments on commit 6c32d3e

Please sign in to comment.