Update day06.py
This commit is contained in:
parent
860d6b7f0a
commit
9ae635bdac
|
@ -1,3 +1,6 @@
|
||||||
|
import functools
|
||||||
|
|
||||||
|
|
||||||
def parse_input() -> list[list[str]]:
|
def parse_input() -> list[list[str]]:
|
||||||
groups = [[]]
|
groups = [[]]
|
||||||
|
|
||||||
|
@ -17,13 +20,10 @@ def solve_p1(groups: list[list[str]]) -> int:
|
||||||
|
|
||||||
def count(group: list[str]) -> int:
|
def count(group: list[str]) -> int:
|
||||||
chars = set()
|
chars = set()
|
||||||
counted = 0
|
|
||||||
for line in group:
|
for line in group:
|
||||||
for char in line:
|
for char in line:
|
||||||
if char not in chars:
|
chars.add(char)
|
||||||
counted += 1
|
return len(chars)
|
||||||
chars.add(char)
|
|
||||||
return counted
|
|
||||||
|
|
||||||
return sum(map(count, groups))
|
return sum(map(count, groups))
|
||||||
|
|
||||||
|
@ -37,9 +37,7 @@ def solve_p2(groups: list[list[str]]) -> int:
|
||||||
for char in line:
|
for char in line:
|
||||||
new_set.add(char)
|
new_set.add(char)
|
||||||
sets.append(new_set)
|
sets.append(new_set)
|
||||||
result_set = sets[0]
|
result_set = functools.reduce(set.intersection, sets)
|
||||||
for i in range(1, len(sets)):
|
|
||||||
result_set = result_set.intersection(sets[i])
|
|
||||||
return len(result_set)
|
return len(result_set)
|
||||||
|
|
||||||
return sum(map(count_intersection, groups))
|
return sum(map(count_intersection, groups))
|
||||||
|
|
Loading…
Reference in a new issue