From 18e156fa778b7ed73ce3b532ed09785171fdc75f Mon Sep 17 00:00:00 2001 From: mhsn Date: Mon, 2 Dec 2024 12:00:00 +0000 Subject: 2024-02 python p1,p2 --- 2024/02/python/main.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 2024/02/python/main.py diff --git a/2024/02/python/main.py b/2024/02/python/main.py new file mode 100644 index 0000000..b4c8c9a --- /dev/null +++ b/2024/02/python/main.py @@ -0,0 +1,22 @@ +from fileinput import input + +reports = [[int(level) for level in report.split()] for report in input()] + + +def incr(xs): + return all(x < y and y - x <= 3 for x, y in zip(xs, xs[1:])) + + +def safe(xs): + return incr(xs) or incr(xs[::-1]) + + +def drops(xs): + return (xs[:idx] + xs[idx + 1 :] for idx, _ in enumerate(xs)) + + +silver = sum(safe(rep) for rep in reports) +gold = sum(any(safe(mod) for mod in drops(rep)) for rep in reports) + +print("silver:", silver) +print("gold:", gold) -- cgit v1.2.3