From 4d665d7c15ee2dff10ad71993492beea03cade56 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Mon, 11 Jan 2021 09:19:36 -0500 Subject: [PATCH] Second part of group questions --- aoc2020/day06/solution.py | 28 ++++++++++++++++++++++------ aoc2020/day06/test-output | 2 +- aoc2020/day06/test_solution.py | 4 +--- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/aoc2020/day06/solution.py b/aoc2020/day06/solution.py index ac598d9..c621dfc 100644 --- a/aoc2020/day06/solution.py +++ b/aoc2020/day06/solution.py @@ -10,16 +10,32 @@ def main() -> int: def _iter_group_counts(instream: typing.TextIO) -> typing.Generator[int, None, None]: - cur_group = set() + for i, group in enumerate(_iter_groups(instream)): + answers = set(list(group[0])) + print(f"i={i} initial={answers}") + + for answers_text in group[1:]: + to_add = set(list(answers_text)) + answers = answers.intersection(set(list(answers_text))) + print(f"i={i} added={to_add} result={answers}") + + print(f"i={i} final={answers} n={len(answers)}") + yield len(answers) + + +def _iter_groups(instream): + cur_group = [] + for line in instream: line = line.strip() if line == "": - yield len(cur_group) - cur_group = set() - for c in list(line): - cur_group.add(c) + yield cur_group + cur_group = [] + continue + + cur_group.append(line) - yield len(cur_group) + yield cur_group if __name__ == "__main__": diff --git a/aoc2020/day06/test-output b/aoc2020/day06/test-output index 95e34f7..a4228c4 100644 --- a/aoc2020/day06/test-output +++ b/aoc2020/day06/test-output @@ -1 +1 @@ -counts_sum=11 +counts_sum=6 diff --git a/aoc2020/day06/test_solution.py b/aoc2020/day06/test_solution.py index 9d6a571..7f800a0 100644 --- a/aoc2020/day06/test_solution.py +++ b/aoc2020/day06/test_solution.py @@ -17,7 +17,5 @@ def test_solution(capsys): expected_output = (HERE / "test-output").read_text().splitlines() assert expected_output == [ - l - for l in capsys.readouterr().out.splitlines() - if not l.startswith("highest_seat") + l for l in capsys.readouterr().out.splitlines() if l.startswith("counts_sum") ]