From 948e946f1df421fcb1518151533173130ae1f0ff Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 21 May 2025 00:47:33 +0100 Subject: [PATCH] 2015: d02: ex1: add solution --- 2015/d02/ex1/ex1.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 2015/d02/ex1/ex1.py diff --git a/2015/d02/ex1/ex1.py b/2015/d02/ex1/ex1.py new file mode 100755 index 0000000..9127151 --- /dev/null +++ b/2015/d02/ex1/ex1.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +import sys + + +def solve(input: str) -> int: + def parse_line(input: str) -> tuple[int, int, int]: + x, y, z = map(int, input.split("x")) + return x, y, z + + def parse(input: str) -> list[tuple[int, int, int]]: + return [parse_line(line) for line in input.splitlines()] + + def wrapping_paper(x: int, y: int, z: int) -> int: + slack = min(x * y, y * z, z * x) + return 2 * (x * y + y * z + z * x) + slack + + presents = parse(input) + return sum(wrapping_paper(*present) for present in presents) + + +def main() -> None: + input = sys.stdin.read() + print(solve(input)) + + +if __name__ == "__main__": + main()