From 5e987c201b4b20d4034b2f72edd528e75939ffcd Mon Sep 17 00:00:00 2001 From: ache Date: Wed, 29 Dec 2021 04:42:44 +0100 Subject: Remplacement des secrets par des ressources externes --- articles/res/code2_j03_aoc.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 articles/res/code2_j03_aoc.py (limited to 'articles/res/code2_j03_aoc.py') diff --git a/articles/res/code2_j03_aoc.py b/articles/res/code2_j03_aoc.py new file mode 100644 index 0000000..c373465 --- /dev/null +++ b/articles/res/code2_j03_aoc.py @@ -0,0 +1,38 @@ +total = 1 +number = [] + +with open("input") as f: + for line in f: + number.append(line.strip()) + +number_oxy = list(number) +number_co2 = list(number) + + +i = 0 +while len(number_oxy) > 1 and i < len(number_oxy[0]): + number_1 = len(list(filter(lambda x: x[i] == '1', number_oxy))) + total = len(number_oxy) + if number_1 >= total - number_1 : + keep = '1' + else: + keep = '0' + number_oxy = [ number for number in number_oxy if number[i] == keep] + i += 1 + +i = 0 +while len(number_co2) > 1 and i < len(number_co2[0]): + number_0 = len(list(filter(lambda x: x[i] == '0', number_co2))) + total = len(number_co2) + if number_0 > total - number_0 : + keep = '1' + else: + keep = '0' + number_co2 = [ number for number in number_co2 if number[i] == keep] + i += 1 + +oxy_rate = int("".join(number_oxy[0]), 2) +CO2_rate = int("".join(number_co2[0]), 2) + +print(oxy_rate * CO2_rate) + -- cgit v1.2.3