diff options
author | ache <ache@ache.one> | 2021-12-29 04:42:44 +0100 |
---|---|---|
committer | ache <ache@ache.one> | 2021-12-29 04:42:56 +0100 |
commit | 5e987c201b4b20d4034b2f72edd528e75939ffcd (patch) | |
tree | 972625be0f0e17656b4e29a6705e0f2e46e3b595 /articles/res/code2_j03_aoc.py | |
parent | Ajout du logo (diff) |
Remplacement des secrets par des ressources externes
Diffstat (limited to 'articles/res/code2_j03_aoc.py')
-rw-r--r-- | articles/res/code2_j03_aoc.py | 38 |
1 files changed, 38 insertions, 0 deletions
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) + |