diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-21 11:12:34 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-21 11:12:34 +0100 |
| commit | 2524a8856bb743139a107d59f14798f5e87231ce (patch) | |
| tree | f4e5e94b4039084a3adc956881f5208f7aa9e5b9 | |
| parent | fec415ca2f39bccde621473aab17952bef80214a (diff) | |
| download | aoc-2524a8856bb743139a107d59f14798f5e87231ce.tar.gz | |
d21 cleanup
| -rw-r--r-- | 20/py/d21.py | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/20/py/d21.py b/20/py/d21.py index 82f5b00..0ed0448 100644 --- a/20/py/d21.py +++ b/20/py/d21.py @@ -13,17 +13,14 @@ def allergens(line): def pt1(_in): - all_ingredients = [] - for line in _in: - all_ingredients.extend(ingredients(line)) + all_ingredients = list(itertools.chain.from_iterable(ingredients(line) for line in _in)) might_be = defaultdict(lambda: set(all_ingredients)) for line in _in: for alg in allergens(line): might_be[alg] &= set(ingredients(line)) - might_be = set.union(*might_be.values()) - defo_not = set(all_ingredients) - might_be - return sum(all_ingredients.count(ing) for ing in defo_not) + return sum(all_ingredients.count(ing) + for ing in set(all_ingredients) - set.union(*might_be.values())) def pt2(_in): |
