diff options
Diffstat (limited to '02/main.py')
-rwxr-xr-x | 02/main.py | 42 |
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() |