diff options
Diffstat (limited to '2021/03')
-rwxr-xr-x | 2021/03/puzzle-2.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/2021/03/puzzle-2.py b/2021/03/puzzle-2.py index 55513dd..103c64a 100755 --- a/2021/03/puzzle-2.py +++ b/2021/03/puzzle-2.py @@ -5,18 +5,19 @@ from typing import Callable def solve(lines: list[str], comp: Callable[[int, int], bool]) -> int: - while True: - for i in range(len(lines[0])): - if len(lines) == 1: - return int(lines[0], 2) - - if comp( - len([line for line in lines if line[i] == "0"]), - len([line for line in lines if line[i] == "1"]), - ): - lines = [line for line in lines if line[i] == "0"] - else: - lines = [line for line in lines if line[i] == "1"] + for i in range(len(lines[0])): + if len(lines) == 1: + break + + if comp( + len([line for line in lines if line[i] == "0"]), + len([line for line in lines if line[i] == "1"]), + ): + lines = [line for line in lines if line[i] == "0"] + else: + lines = [line for line in lines if line[i] == "1"] + + return int(lines[0], 2) def main() -> None: |