From b8153c5a8578a59bd3909336b3affbfbd0f234c4 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Wed, 8 Dec 2021 07:15:36 +0100 Subject: [PATCH] day08: code beautification --- day08.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/day08.py b/day08.py index 0789b32..ce45609 100644 --- a/day08.py +++ b/day08.py @@ -10,10 +10,13 @@ def getDisplayValue(input_str: str, output_str: str) -> int: lines_from_1 = set(i) elif len(i) == 4: # 4 lines_from_4 = set(i) + elif len(i) > 4: + break lines_from_4_minus_1 = lines_from_4 - lines_from_1 value = [] for i in output_str.split(): + lines_from_i = set(i) if len(i) == 2: value.append("1") elif len(i) == 3: @@ -21,16 +24,16 @@ def getDisplayValue(input_str: str, output_str: str) -> int: elif len(i) == 4: value.append("4") elif len(i) == 5: # 2, 3, 5 - if not lines_from_1 - set(i): + if not lines_from_1 - lines_from_i: value.append("3") - elif not lines_from_4_minus_1 - set(i): + elif not lines_from_4_minus_1 - lines_from_i: value.append("5") else: value.append("2") elif len(i) == 6: # 6, 9 or 0 - if lines_from_4_minus_1 - set(i): + if lines_from_4_minus_1 - lines_from_i: value.append("0") - elif not lines_from_1 - set(i): + elif not lines_from_1 - lines_from_i: value.append("9") else: value.append("6") @@ -46,19 +49,12 @@ class Day(AOCDay): def part1(self) -> Any: signals = self.getInputAsArraySplit(" | ") - count = 0 - for x in signals: - outputs = x[1].split() - for o in outputs: - if len(o) in [2, 3, 4, 7]: - count += 1 + count = sum(len(o) in [2, 3, 4, 7] for x in signals for o in x[1].split()) return count def part2(self) -> Any: signals = self.getInputAsArraySplit(" | ") - count = 0 - for x in signals: - count += getDisplayValue(x[0], x[1]) + count = sum(getDisplayValue(x[0], x[1]) for x in signals) return count