summaryrefslogtreecommitdiff
path: root/articles/res/code2_j03_aoc.py
diff options
context:
space:
mode:
Diffstat (limited to 'articles/res/code2_j03_aoc.py')
-rw-r--r--articles/res/code2_j03_aoc.py38
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)
+