From cacd416845e12bde1840508532474cb45e50a334 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 3 Dec 2021 10:12:14 +0100 Subject: Remove the `while True` loop --- 2021/03/puzzle-2.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to '2021/03') 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: -- cgit v1.2.3