Refactor to remove duplicate and pointless code

This commit is contained in:
akp 2024-12-08 23:21:18 +00:00
parent a4835f609e
commit 0e233c02cc
No known key found for this signature in database
GPG key ID: CF8D58F3DEB20755
3 changed files with 11 additions and 21 deletions

View file

@ -1,6 +1,4 @@
import sys
from functools import reduce
from typing import Iterable
import math
@ -45,28 +43,20 @@ def solve(target: int, ns: list[int], use_concat: bool = False) -> bool:
return solve(target - v, rest, use_concat)
def one(instr: str):
def do(instr: str, use_concat: bool = False) -> int:
cases = parse(instr)
return reduce(
lambda x, y: x + y,
(
target if solve(target, numbers, use_concat=False) else 0
for (target, numbers) in cases
),
0,
return sum(
target if solve(target, numbers, use_concat) else 0
for (target, numbers) in cases
)
def one(instr: str):
return do(instr)
def two(instr: str):
cases = parse(instr)
return reduce(
lambda x, y: x + y,
(
target if solve(target, numbers, use_concat=True) else 0
for (target, numbers) in cases
),
0,
)
return do(instr, use_concat=True)
def _debug(*args, **kwargs):

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before After
Before After

View file

@ -10,7 +10,7 @@
{"day": 5, "part": 2, "runner": "py", "min": 0.02507805824279785, "max": 0.03197765350341797, "avg": 0.027084295749664308, "n": 100}
{"day": 6, "part": 1, "runner": "py", "min": 0.05790352821350098, "max": 0.06762170791625977, "avg": 0.061776439348856606, "n": 6}
{"day": 6, "part": 2, "runner": "py", "min": 15.881408452987671, "max": 17.086341857910156, "avg": 16.64130985736847, "n": 6}
{"day": 7, "part": 1, "runner": "py", "min": 0.025098562240600586, "max": 0.04218649864196777, "avg": 0.027579346656799317, "n": 500}
{"day": 7, "part": 2, "runner": "py", "min": 0.03137779235839844, "max": 0.04896378517150879, "avg": 0.03503713369369507, "n": 500}
{"day": 7, "part": 1, "runner": "py", "min": 0.020526885986328125, "max": 0.07849740982055664, "avg": 0.022122257232666014, "n": 500}
{"day": 7, "part": 2, "runner": "py", "min": 0.02680826187133789, "max": 0.04485297203063965, "avg": 0.029925800323486327, "n": 500}
{"day": 8, "part": 1, "runner": "py", "min": 0.025803089141845703, "max": 0.036757469177246094, "avg": 0.02743640899658203, "n": 200}
{"day": 8, "part": 2, "runner": "py", "min": 0.027710437774658203, "max": 0.035851240158081055, "avg": 0.029560294151306152, "n": 200}