aboutsummaryrefslogtreecommitdiff
path: root/2015/17
diff options
context:
space:
mode:
authorThomas Voss <thomasvoss@live.com> 2021-10-29 23:02:39 +0200
committerThomas Voss <thomasvoss@live.com> 2021-10-29 23:02:39 +0200
commite7c9108b95e39d7ea5a29ae06d619c4727f11027 (patch)
tree237261eef3afd0720be77dbcbb9599fa66a24b67 /2015/17
Initial commit
Diffstat (limited to '2015/17')
-rw-r--r--2015/17/input20
-rwxr-xr-x2015/17/puzzle-1.py18
-rwxr-xr-x2015/17/puzzle-2.py20
3 files changed, 58 insertions, 0 deletions
diff --git a/2015/17/input b/2015/17/input
new file mode 100644
index 0000000..09ebd46
--- /dev/null
+++ b/2015/17/input
@@ -0,0 +1,20 @@
+43
+3
+4
+10
+21
+44
+4
+6
+47
+41
+34
+17
+17
+44
+36
+31
+46
+9
+27
+38
diff --git a/2015/17/puzzle-1.py b/2015/17/puzzle-1.py
new file mode 100755
index 0000000..b201e5b
--- /dev/null
+++ b/2015/17/puzzle-1.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+import itertools
+
+
+def main() -> None:
+ with open("input", "r", encoding="utf-8") as f:
+ nums = list(map(int, f.readlines()))
+
+ combs: list[tuple[int, ...]] = []
+ for n in range(len(nums) + 1):
+ combs += list(itertools.combinations(nums, n))
+
+ print(len(list(filter(lambda x: sum(x) == 150, combs))))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/2015/17/puzzle-2.py b/2015/17/puzzle-2.py
new file mode 100755
index 0000000..43f8922
--- /dev/null
+++ b/2015/17/puzzle-2.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+import itertools
+
+
+def main() -> None:
+ with open("input", "r", encoding="utf-8") as f:
+ nums = list(map(int, f.readlines()))
+
+ combs: list[tuple[int, ...]] = []
+ for n in range(len(nums) + 1):
+ combs += list(itertools.combinations(nums, n))
+
+ combs = list(filter(lambda x: sum(x) == 150, combs))
+ conts = min(map(len, combs))
+ print(len(list(filter(lambda x: len(x) == conts, combs))))
+
+
+if __name__ == "__main__":
+ main()