summaryrefslogtreecommitdiff
path: root/articles/res
diff options
context:
space:
mode:
Diffstat (limited to 'articles/res')
-rw-r--r--articles/res/code1_j03_aoc.py20
-rw-r--r--articles/res/code2_j03_aoc.py38
2 files changed, 58 insertions, 0 deletions
diff --git a/articles/res/code1_j03_aoc.py b/articles/res/code1_j03_aoc.py
new file mode 100644
index 0000000..f4c36e7
--- /dev/null
+++ b/articles/res/code1_j03_aoc.py
@@ -0,0 +1,20 @@
+gamma, epsi = 0, 0
+total = 1
+
+with open("input") as f:
+ final = f.readline().strip()
+ final = list(map(lambda x: 1 if x == '1' else 0, final))
+ print(final)
+
+ for line in f:
+ for i, c in enumerate(line):
+ if c == '1':
+ final[i] += 1
+ total += 1
+
+gamma = int("".join(list(map(lambda x: '1' if total - x > x else '0', final))), 2)
+epsi = int("".join(list(map(lambda x: '0' if total - x > x else '1', final))), 2)
+
+
+print(epsi, gamma, gamma * epsi)
+
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)
+