summaryrefslogtreecommitdiff
path: root/02/main.py
diff options
context:
space:
mode:
Diffstat (limited to '02/main.py')
-rwxr-xr-x02/main.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/02/main.py b/02/main.py
new file mode 100755
index 0000000..0a1697d
--- /dev/null
+++ b/02/main.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python
+
+
+
+def solve_part1(boxes):
+ result = 0
+ for b in boxes:
+ faces = [b[0]* b[1], b[1] * b[2], b[2] * b[0]]
+ result += 2 * sum(faces) + min(faces)
+ return result
+
+
+
+def solve_part2(boxes):
+ result = 0
+ for b in boxes:
+ perims = [2 * (b[0] + b[1]), 2 * (b[1] + b[2]), 2 * (b[2] + b[0])]
+ volume = b[0] * b[1] * b[2]
+ result += min(perims) + volume
+ return result
+
+
+
+def main():
+ # Read box dimensions from input text file
+ with open("input.txt", "r") as f:
+ lines = f.read().splitlines()
+
+ # Parse the dimensions into tuples (x, y, z)
+ boxes = []
+ for line in lines:
+ dims = line.split("x")
+ b = tuple([int(d) for d in dims])
+ boxes.append(b)
+
+ print("Part 1 solution:", solve_part1(boxes)) # 1586300 for me
+ print("Part 2 solution:", solve_part2(boxes)) # 3737498 for me
+
+
+
+if __name__ == "__main__":
+ main()