generated from public/aoc_template
day02 - revised
This commit is contained in:
parent
270e9dc482
commit
4f99603bd5
28
day02.py
28
day02.py
@ -1,6 +1,7 @@
|
|||||||
import math
|
import math
|
||||||
|
|
||||||
from tools.aoc import AOCDay
|
from tools.aoc import AOCDay
|
||||||
|
from tools.types import String
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
@ -19,29 +20,28 @@ class Day(AOCDay):
|
|||||||
def parse_input(self) -> list[tuple[int, ...]]:
|
def parse_input(self) -> list[tuple[int, ...]]:
|
||||||
return [tuple(map(int, pair.split("-"))) for pair in self.getInput().split(",")]
|
return [tuple(map(int, pair.split("-"))) for pair in self.getInput().split(",")]
|
||||||
|
|
||||||
def part1(self) -> Any:
|
def solve(self, part2: bool = False) -> int:
|
||||||
ans = 0
|
ans = 0
|
||||||
for low, high in self.parse_input():
|
for low, high in self.parse_input():
|
||||||
for _id in range(low, high + 1):
|
for _id in range(low, high + 1):
|
||||||
str_id = str(_id)
|
str_id = String(_id)
|
||||||
if str_id[:len(str_id) // 2] == str_id[len(str_id) // 2:]:
|
if not part2:
|
||||||
|
if len(set(str_id // 2)) == 1:
|
||||||
ans += _id
|
ans += _id
|
||||||
|
else:
|
||||||
return ans
|
for x in range(2, len(str_id) + 1):
|
||||||
|
if len(set(str_id // x)) == 1:
|
||||||
def part2(self) -> Any:
|
|
||||||
ans = 0
|
|
||||||
for low, high in self.parse_input():
|
|
||||||
for _id in range(low, high + 1):
|
|
||||||
str_id = str(_id)
|
|
||||||
for x in range(1, len(str_id) // 2 + 1):
|
|
||||||
blocks = set(str_id[i:i+x] for i in range(0, len(str_id), x))
|
|
||||||
if len(blocks) == 1:
|
|
||||||
ans += _id
|
ans += _id
|
||||||
break
|
break
|
||||||
|
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
|
def part1(self) -> Any:
|
||||||
|
return self.solve()
|
||||||
|
|
||||||
|
def part2(self) -> Any:
|
||||||
|
return self.solve(part2=True)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
day = Day(2025, 2)
|
day = Day(2025, 2)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user