aboutsummaryrefslogtreecommitdiff
path: root/2020/07
diff options
context:
space:
mode:
Diffstat (limited to '2020/07')
-rwxr-xr-x2020/07/puzzle-1.py14
-rwxr-xr-x2020/07/puzzle-2.py4
2 files changed, 5 insertions, 13 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__":
diff --git a/2020/07/puzzle-2.py b/2020/07/puzzle-2.py
index c87ea13..f77298a 100755
--- a/2020/07/puzzle-2.py
+++ b/2020/07/puzzle-2.py
@@ -8,11 +8,11 @@ def total_bags(innerbags: list[dict[int, str]]) -> int:
if innerbags[0]["name"] == "no other":
return 0
- return sum([bag["count"] + bag["count"] * total_bags(bdict[bag["name"]]) for bag in innerbags])
+ return sum(bag["count"] + bag["count"] * total_bags(bdict[bag["name"]]) for bag in innerbags)
def main() -> None:
- with open("input", "r") as f:
+ with open("input", "r", encoding="utf-8") as f:
lines = f.readlines()
for baginfo in lines: