Solve day2

This commit is contained in:
2025-12-05 13:58:49 -08:00
parent 32986b47b7
commit 1a7840ab37
4 changed files with 55 additions and 0 deletions

1
day2/input.txt Normal file
View File

@@ -0,0 +1 @@
5529687-5587329,50-82,374-560,83-113,226375-287485,293169-368713,2034-2634,9945560-9993116,4872472-4904227,3218-5121,1074-1357,15451-26093,483468003-483498602,51513-85385,1466-1992,7600-13034,710570-789399,407363-480868,3996614725-3996662113,3-17,5414907798-5414992881,86274-120443,828669-909588,607353-700604,4242340614-4242556443,28750-44009,935177-1004747,20-41,74678832-74818251,8484825082-8484860878,2784096938-2784156610,5477-7589,621-952,2424167145-2424278200,147085-217900,93043740-93241586

26
day2/part1.py Normal file
View File

@@ -0,0 +1,26 @@
FILE = "input.txt"
def main():
line = open(FILE).readlines()[0].strip()
ranges = [
[int(n) for n in l.split("-")]
for l in line.split(",")
]
invalid_ids = [
id
for (start, end) in ranges
for id in range(start, end + 1)
if invalid(str(id))
]
return sum(invalid_ids)
def invalid(id):
if len(id) % 2 == 1: return False
a, b = id[:(len(id)//2)], id[(len(id)//2):]
return a == b
if __name__ == "__main__":
print(main())

27
day2/part2.py Normal file
View File

@@ -0,0 +1,27 @@
FILE = "input.txt"
def main():
line = open(FILE).readlines()[0].strip()
ranges = [
[int(n) for n in l.split("-")]
for l in line.split(",")
]
invalid_ids = [
id
for (start, end) in ranges
for id in range(start, end + 1)
if invalid(str(id))
]
return sum(invalid_ids)
def invalid(id: str) -> bool:
for n in range(1, len(id)//2 + 1):
sub = { id[i:i+n] for i in range(0, len(id), n) }
if len(sub) == 1: return True
return False
if __name__ == "__main__":
print(main())

1
day2/test.txt Normal file
View File

@@ -0,0 +1 @@
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124