day08: code beautification
This commit is contained in:
parent
9bb1724832
commit
b8153c5a85
22
day08.py
22
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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user