summaryrefslogtreecommitdiffstats
path: root/solutions/py/08.py
diff options
context:
space:
mode:
Diffstat (limited to 'solutions/py/08.py')
-rw-r--r--solutions/py/08.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/solutions/py/08.py b/solutions/py/08.py
new file mode 100644
index 0000000..cdd4b4a
--- /dev/null
+++ b/solutions/py/08.py
@@ -0,0 +1,49 @@
+f = open("../input/08", "r").readline()
+
+def format(layers):
+ i = 0
+ for layer in layers:
+ print("\nlayer", i)
+ i += 1
+ for row in layer:
+ for c in row:
+ print(c, end=' ')
+ print("")
+
+def count(layer, num):
+ return sum([row.count(num) for row in layer])
+
+img = []
+least_zeroes = None
+num = 0
+
+for l in range(100):
+ #print("l", l)
+ layer = [[int(f[l*25*6 + y*25 + x]) for x in range(25)] for y in range(6)]
+ zeroes = 0
+ ones = 0
+ twos = 0
+ if least_zeroes == None:
+ least_zeroes = count(layer, 0)
+ num = count(layer, 1) * count(layer, 2)
+ elif count(layer, 0) < least_zeroes:
+ least_zeroes = count(layer, 0)
+ num = count(layer, 1) * count(layer, 2)
+ img.append(layer)
+print(1, num)
+
+def pretty(result):
+ for row in result:
+ for c in row:
+ print(('\u2588' if c == 1 else ' '), end='')
+ print("")
+
+result = img[0]
+
+for layer in img[1:]:
+ for x in range(25):
+ for y in range(6):
+ if result[y][x] == 2:
+ result[y][x] = layer[y][x]
+print(2)
+pretty(result)