From 95ae7df24e61095e2bb29941e5a7d61bec2b2552 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 3 Dec 2021 08:48:21 +0100 Subject: [PATCH] 2021: d03: ex1: add solution --- 2021/d03/ex1/ex1.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 2021/d03/ex1/ex1.py diff --git a/2021/d03/ex1/ex1.py b/2021/d03/ex1/ex1.py new file mode 100755 index 0000000..7519004 --- /dev/null +++ b/2021/d03/ex1/ex1.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import sys +from typing import List + + +def solve(input: List[int]) -> int: + gamma, epsilon = 0, 0 + bit = 1 + + while any(map(bool, input)): + num_bits = sum(n % 2 for n in input) + if num_bits >= len(input) / 2: + gamma += bit + else: + epsilon += bit + input = [n // 2 for n in input] + bit *= 2 + + return gamma * epsilon + + +def main() -> None: + input = [int(line, 2) for line in sys.stdin.readlines()] + print(solve(input)) + + +if __name__ == "__main__": + main()