From 3e6fb347c06210c99095a297c12619485c707e0a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 9 May 2025 15:06:03 +0100 Subject: [PATCH] 2017: d02: ex2: add solution --- 2017/d02/ex2/ex2.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 2017/d02/ex2/ex2.py diff --git a/2017/d02/ex2/ex2.py b/2017/d02/ex2/ex2.py new file mode 100755 index 0000000..779ac63 --- /dev/null +++ b/2017/d02/ex2/ex2.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import itertools +import sys + + +def solve(input: str) -> int: + def parse(input: str) -> list[list[int]]: + return [[int(n) for n in line.split()] for line in input.splitlines()] + + def evenly_divide(row: list[int]) -> int: + for a, b in itertools.combinations(sorted(row), 2): + assert a <= b # Sanity check + if b % a: + continue + return b // a + assert False # Sanity check + + sheet = parse(input) + return sum(map(evenly_divide, sheet)) + + +def main() -> None: + input = sys.stdin.read() + print(solve(input)) + + +if __name__ == "__main__": + main()