aboutsummaryrefslogtreecommitdiff
path: root/2020/07/puzzle-1.py
diff options
context:
space:
mode:
Diffstat (limited to '2020/07/puzzle-1.py')
-rwxr-xr-x2020/07/puzzle-1.py14
1 files changed, 3 insertions, 11 deletions
diff --git a/2020/07/puzzle-1.py b/2020/07/puzzle-1.py
index da054b8..3c0d0e3 100755
--- a/2020/07/puzzle-1.py
+++ b/2020/07/puzzle-1.py
@@ -9,15 +9,12 @@ def holds_bag(innerbags: list[str]) -> bool:
return False
elif "shiny gold" in innerbags:
return True
-
- for subbag in innerbags:
- if holds_bag(bdict[subbag]):
- return True
+ return any(holds_bag(bdict[subbag]) for subbag in innerbags)
def main() -> None:
global bdict
- with open("input", "r") as f:
+ with open("input", "r", encoding="utf-8") as f:
lines = f.readlines()
for baginfo in lines:
@@ -26,12 +23,7 @@ def main() -> None:
# { bag_name: [contained_bag_1, containted_bag_2, ...] }
bdict[data[0]] = [" ".join(b.split(" ")[-3:][:2]) for b in data[1].split(",")]
- count = 0
- for bag in bdict:
- if holds_bag(bdict[bag]):
- count += 1
-
- print(count)
+ print(sum(holds_bag(bdict[bag]) for bag in bdict))
if __name__ == "__main__":