Skip to content

Commit ccb8b7c

Browse files
committed
feat: 2024 day 11
1 parent c05dc7d commit ccb8b7c

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

2024/11a.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from aoc import *
2+
3+
4+
def main(infi: str):
5+
inp = load_ints_split(infi, ' ')
6+
for j in range(25):
7+
i = 0
8+
while i < len(inp):
9+
if inp[i] == 0:
10+
inp[i] = 1
11+
elif (lennum := len(strnum := str(inp[i]))) % 2 == 0:
12+
inp.insert(i, int(strnum[: lennum // 2]))
13+
i += 1
14+
inp[i] = int(strnum[lennum // 2 :])
15+
else:
16+
inp[i] *= 2024
17+
i += 1
18+
return len(inp)
19+
20+
21+
DAY = 11
22+
FILE_TEST = f"{DAY}_testa.txt"
23+
# FILE_TEST = f"{DAY}_testb.txt"
24+
FILE_EXP = f"{DAY}_exp.txt"
25+
FILE = f"{DAY}.txt"
26+
# test_and_submit(main, FILE_TEST, FILE_EXP, FILE, DAY)
27+
# print(main(FILE_TEST))
28+
print(main(FILE))

2024/11b.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from aoc import *
2+
from functools import cache
3+
4+
5+
@cache
6+
def rec(num: int, depth: int):
7+
if depth == 0:
8+
return 1
9+
if num == 0:
10+
return rec(1, depth - 1)
11+
elif (lennum := len(strnum := str(num))) % 2 == 0:
12+
return rec(int(strnum[: lennum // 2]), depth - 1) + rec(
13+
int(strnum[lennum // 2 :]), depth - 1
14+
)
15+
else:
16+
return rec(num * 2024, depth - 1)
17+
18+
19+
def main(infi: str):
20+
return sum(rec(int(x), 75) for x in load_ints_split(infi, ' '))
21+
22+
23+
DAY = 11
24+
FILE_TEST = f"{DAY}_testa.txt"
25+
# FILE_TEST = f"{DAY}_testb.txt"
26+
FILE_EXP = f"{DAY}_exp.txt"
27+
FILE = f"{DAY}.txt"
28+
# test_and_submit(main, FILE_TEST, FILE_EXP, FILE, DAY)
29+
# print(main(FILE_TEST))
30+
print(main(FILE))

README.org

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Personal Stats 2024
55
| Day | Time | Rank | Score | Time | Rank | Score |
66
|-----+----------+------+-------+----------+-------+-------|
7+
| 11 | 00:16:43 | 4574 | 0 | 04:24:24 | 13605 | 0 |
78
| 10 | 00:54:16 | 7416 | 0 | 00:56:37 | 6784 | 0 |
89
| 9 | 00:39:02 | 4986 | 0 | 10:22:50 | 20801 | 0 |
910
| 8 | 00:20:56 | 2671 | 0 | 00:32:01 | 2868 | 0 |

0 commit comments

Comments
 (0)