Solve 2025 day 1 and 2

This commit is contained in:
2025-12-14 10:36:32 -05:00
parent e655580b3f
commit 183f909508
3 changed files with 60 additions and 3 deletions

View File

@@ -1,5 +1,22 @@
from lib import get_data
data = get_data(__file__)
print(data)
NUM = 100
data = get_data(__file__)
pos = 50
r1, r2 = 0, 0
for line in data.splitlines():
d = line[0]
n = int(line[1:])
dir = 1 if d == "R" else -1
for _ in range(n):
pos = (pos + dir) % NUM
if pos == 0:
r2 += 1
if pos == 0:
r1 += 1
print(r1)
print(r2)

34
2025/d02.py Normal file
View File

@@ -0,0 +1,34 @@
from lib import get_data
data = get_data(__file__)
def is_invalid(xs: str) -> bool:
for seq_len in range(1, len(xs) // 2 + 1):
if xs[:seq_len] == xs[seq_len:]:
return True
return False
def is_invalid2(xs: str) -> bool:
for seq_len in range(1, len(xs)):
if len(xs) % seq_len != 0:
continue
for repeat in range(len(xs) // seq_len):
i = seq_len * repeat
if xs[:seq_len] != xs[i:i + seq_len]:
break
else:
return True
return False
r1, r2 = 0, 0
for id_range in data.split(","):
lo, up = list(map(int, id_range.split("-")))
for id in range(lo, up + 1):
if is_invalid(str(id)):
r1 += id
if is_invalid2(str(id)):
r2 += id
print(r1)
print(r2)