day8
This commit is contained in:
parent
9bb0eeaf42
commit
38118e4613
1 changed files with 82 additions and 0 deletions
82
8/8.py
Executable file
82
8/8.py
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys, os
|
||||||
|
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print(sys.argv[0], "width", "height")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
width = int(sys.argv[1])
|
||||||
|
height = int(sys.argv[2])
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
pixels = line.rstrip()
|
||||||
|
|
||||||
|
layer = 0
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
layers = []
|
||||||
|
counts = []
|
||||||
|
|
||||||
|
row = []
|
||||||
|
layer = []
|
||||||
|
|
||||||
|
zeroes = 0
|
||||||
|
ones = 0
|
||||||
|
twos = 0
|
||||||
|
|
||||||
|
# build layers.
|
||||||
|
for i in range(0, len(pixels)):
|
||||||
|
pixel = int(pixels[i])
|
||||||
|
|
||||||
|
if pixel == 0:
|
||||||
|
zeroes += 1
|
||||||
|
elif pixel == 1:
|
||||||
|
ones += 1
|
||||||
|
elif pixel == 2:
|
||||||
|
twos += 1
|
||||||
|
|
||||||
|
row.append(pixel)
|
||||||
|
x += 1
|
||||||
|
|
||||||
|
# Assemble layer
|
||||||
|
if x == width:
|
||||||
|
x = 0
|
||||||
|
y += 1
|
||||||
|
layer.append(row)
|
||||||
|
row = []
|
||||||
|
|
||||||
|
# Add layer, stats and reset counts
|
||||||
|
if y == height:
|
||||||
|
y = 0
|
||||||
|
layers.append(layer)
|
||||||
|
counts.append((zeroes, ones, twos))
|
||||||
|
layer = []
|
||||||
|
zeroes = 0
|
||||||
|
ones = 0
|
||||||
|
twos = 0
|
||||||
|
|
||||||
|
# return part 1 answer
|
||||||
|
fewest = None
|
||||||
|
wanted = 0
|
||||||
|
for layer in counts:
|
||||||
|
if fewest is None or layer[0] < fewest:
|
||||||
|
wanted = layer[1] * layer[2]
|
||||||
|
fewest = layer[0]
|
||||||
|
print(wanted)
|
||||||
|
|
||||||
|
# render part 2 answer
|
||||||
|
for y in range(0,height):
|
||||||
|
row = ""
|
||||||
|
for x in range(0, width):
|
||||||
|
p = 2
|
||||||
|
for l in range(0, len(layers)):
|
||||||
|
if p == 2:
|
||||||
|
p = layers[l][y][x]
|
||||||
|
if p == 0:
|
||||||
|
row = row + " "
|
||||||
|
else:
|
||||||
|
row = row + "*"
|
||||||
|
print(row)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue