From 2913ed34c56b351335dd8dd44bb452a5920d6b8b Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Fri, 6 Mar 2020 17:19:52 +0100 Subject: [PATCH] Solve day 8 part 1 --- 2019/day08-image.py | 30 ++++++++++++++++++++++++++++++ 2019/inputs/day08 | 1 + 2 files changed, 31 insertions(+) create mode 100644 2019/day08-image.py create mode 100644 2019/inputs/day08 diff --git a/2019/day08-image.py b/2019/day08-image.py new file mode 100644 index 0000000..f9f52be --- /dev/null +++ b/2019/day08-image.py @@ -0,0 +1,30 @@ +import math + + +def main(): + width = 25 + height = 6 + with open("inputs/day08") as f: + data = f.readline().strip() + layers = [] + layer_size = width * height + position = 0 + layer = data[position : position + layer_size] + number_of_zero_digits = math.inf + layer_index = -1 + while layer: + count = layer.count("0") + if count < number_of_zero_digits: + layer_index = int(position / layer_size) + number_of_zero_digits = count + layers.append(layer) + position += layer_size + layer = data[position : position + layer_size] + + print(layer_index) + layer = layers[layer_index] + print(layer.count("1") * layer.count("2")) + + +if __name__ == "__main__": + main() diff --git a/2019/inputs/day08 b/2019/inputs/day08 new file mode 100644 index 0000000..a48c27f --- /dev/null +++ b/2019/inputs/day08 @@ -0,0 +1 @@ +220221222222102122222222220222222221222010222222222222221102222222222222222221022222222122202222212222222222202222222220222002202222202122222222222222221221222222112022222222222222222220222022222222222222220002222222222222222222022222222222202222202222222222222222222221222002222222222222222222222222220221222022002122222222222222222221202002222222222222220222222202222222222222022222222222202222202222222222222222222222222122222222212122222222222222220222222122012022222222220222222221222202222222222222220212222222222222222222022222222022202222222222222222212222222220222222212222222022222222222222221222212222112122222222220222222220222000222222222222221002222222222222222220122222222122202222202222222222222222222222222212212222202022222222222222222221212122212222222222220222222222212211222222222222220122222212222222222220122222222122222222212222222222222222222222222122202222202222222222222222222221202022102022222222222222222220222201222222222222220202222202222222222222022222222222212222212222222222222222222222222022222222222122222222222222221222222022112122222222220222222220212212222222222222220022222212222222222220222222222122212222202222222222222222222221222102222222212222222222222222221220202022212022222222222222222220212001222222222222222202222202222222222220022222222222202222222222222222202222222221222202212222222002222222222222222221212022012122222222220222222222222120222222222222222222222202222222222201122222222222202222222222222222222222222220222022202222222022222222222222220220222222222222222222221222222221202010222222222222221222222202222222222220222222222022212222202222222222212222222221222022212222222202222222222222221222212122012022222222221222222220202100222222222222222112222212222202222210222222222122202222222222222222222222222220222012212222212222222222222222220222212122222122222222221222222222212221222222222222222022222222222212222222022222222022212222222222222222222222222222222022202222212112222222222222221220222022002222222222222222222222212110222222222222222122222202222222222210122222222122222222202222222222202221222220222112212222202022222222222222220220202122102222222222221222222220222201222222222222022112222222222222222210222220222222202222212222222222202222222222222102202222212212222222222222222220222022212122222222221222222221212010222222222222021012222222222222222222222222222122202222212222222222222221222220222002222222212012222222222202222220222122022222222222221222222220202020222222222222022112222222222202222211222220222122202222202222222222222220222221222212212222212212222222222212222220212022122122222222220222222221212022222222222222022222222222222212222212122221222122202222212222222222212222222221222022222222222112222222222212220221212222122222222222220222222221221002222222222222222012222202222212222220122221222222202222222222222222222220222221222022222222222202221222222222222221202122222022222222221222222222202111222222222222121222222202222202222202222221222022202220202222222222212222222221222012202222222022222222222202220222202022022022222222220222222222211020222222222222022212222202222222222210122222222222212222202222202222212220222221222022222222212212221222222112220221222222122222222222220222202220211110222222222220120102222222222212222202222221222222212222212222202222202220222221222002212222202122220222222012220222222222022022222222222222212222201221222222222222020212222222222212222211222221222022222222222222222222202222222221222112202222202202221222222002222221202222202122222222221222202220211021222222222220022212222212222202222202022222222222202221222222212222202222222222222212222222222212221222222122221222212022112022222222222222202220212220222222222222221012222222222212212210022221222022202222222222222222202221222220222222202222212212220222222102202222222022102022222222222222222220200121222222222221121102222222222222222200022221222222212220202222202222202221222220222012202222222222222222222112210221202222002222222222221222222221200222222222222220020222222222222222212222122222222022212222212222222222212220222210222212212222202012220222222012220220222222022012222222221222212220211021222222222220220222222202222222222201122220222222212220222222212222202222222220222112202222222002221222222202222220202022012022222222222222102220200022222222222222222002222212222222222220022222222222222222222222212222212222222201222002222222212212220222222002211220212222202112222222221222002220202002222222222220022012222222222212202210222222222022202220202222202222202220222220222112212222222222220222222022221220202122122122222222221222102222211111222222222221020002222212222212212211022221222022222221202222222222222221222212222002202222212112221222222012222222212122202202222222211220112222220220222222222220220202222222222212222202222222222022212222212222212222212221222222222222222222202212221222222122220222212022212102222222202221102220221120222222222220021002222212222212212220022221222022222221212222202222202222222220222122212222212022222222222022211220212222002202222222202202012220220210222222222220221102222202222212212212022221222222202221212222202222222222222201222002222222212022220222202202220220222222202112222222222201112222200011222222222220220202222212222222212211022221221222202222212222222222202022222222222022212222212202222222222202222220222222122022222222220221222221200010222222222220022012222222222212202221022221220022222220222222222222202022222222222002222222222222222222202212200220222122102012202222220221202220212010222222222222121212222212222202222221022221220022112221212222202222202120222211222202222222222202222222202022120222212222222012222222222202212222221121222222222220121202222202222222222202022220222222002222202222212222222221222202222102212222202122222222222202010202222122122222022222212210102222202112222222222221020112222202222222202222022220220122002222222222212222212122222222222102212222202002221222222212211202221022222202012222222212212222221022222222222220120022222212222212222201122221221022012220212222222222202021222200222212202222202212221222202112212221200222002112222222210210112220212122222222222222021102222212222222202220222222220022022220202222202222202122222210222102202222202202200222202002102201210122122202002222220220022220211101222222222221221202222212222202202212022222221122102222202222212222202020222210222212212222202202220222202222100221202022102122212222200212222220220022222222222221021202222202222222222210022222221122002220222222222222202021222220222122222222222212210222212222020221222022012022112222110210002221211101222222222221222112222202222212212211122222220022012222222222222222222222212200222122202222202202212222222202221210210222012022002222210212212222221212222222221220121122222202222212202201222221220122012222212222202222212220222202222222212222212212202222212022120201202022012002112222101201012222220101222222221222022122222212222202212200022222221122102221202222202222212020202201222112222222222212222222202002210220220122202022002222000122022221201121222222220220220112222222222222202222122221220222202220202222202222222222202221222212202222202002211222212022001221212122112112202222020202102221200122222222220220220112222202222202212221122221222222022220222222212222222222212201222102202222212002200222202202221210221122202022102222220121202220210200222222220220222212222202222212212202022221222122022222212222112222222020202211222222202222222022210222202122020210201222012022002222202122202222200211222222220221020112222202222212222211122221222122202222202222002222202120222201222202222222212002212222202112120220211022012012202222102211002222220101222222221222222112222202222202212212022221220122012221202222012222222200212221222122211222212112202222202022202211202122012002212222000000212222210100222222221221221012222212222202222211022222221222212222212222002220212111212222222202202222222002211222212102122210210222222112122222100211122220220122222222220221120202222202222202212201221220222022122222212222102221212210202212222002201222202022201222220202111202221022022112202222121102112221210010222222222221021012222212222202202220120221220222212222222222222220202100202220222002220212202112222222210212002201201122122112222222002221222221202211222222221222221122222202222212212222221221220222222222202222102221202222212222222212220202222022202222212102222201212122222212012222202012222222210101222222222221222022222202222202222221121220221022102220202222202220202000202202222002201212202222221222202002212212210222112022112222011110102221220120222222220221122222220212222212222210020220220122222221202222012221212201222222222202210212212222222222211212202220202222112212202222101200112220211120222222220221121112220212222222202200221220220122122221212222022222002011220221222212202202202212202222200212000220202222212212002222211201112222202010222222221222220102221212222202222200120221222122012222222222102220002221221221222022220222202122202222202102111202202022102102002222121002012221222011222222221221212222221222222202222222222220221222102221222222002221002120220201222112200212212022222222222022210222222222212102102222002000112220220121222222222221210002220222222222202222221220220122222222212222222220002022202220222202210202212012200222221222022222201122210212202222111222122220201202222222220222012202220202222002212212222220221022122220202222012221122100221222222202211202202122201222222002202210201022001112222222000212102222202112222222222220201102222212222222212220122221211122002221222222012221112020212200222002221202222222210222212012101220201022102212012222012201212222222100222222221221211012220212222102202210120220200222202221202222102221102010221222222112202202222102202222222022112200222222220022112222202112212222221110222222221221010012221212222012212222022220200222122201212222012220012212211212222012221212202002221222222022101212221122100121202222011001202222211202222222222220002120221222222222212222220221211022222212212222002221102211220222222102221212202012221222200002201202211022202211122222222002112221221101222222222222120121221202222202212221121222202022112220222222112221112102211000222202212222222022202222201002122221221022020210222222121211102020210011222222221222201102222212222202212202121222211122012210212222112222202120221211222002202212222222202222201212120202222022221102112222210012222021222121222222020221211120222222222122202220221221220022022212202222212200012221021002222122220202222112212222202102000221220222212122222222022210012120210212222202021220010120222212222102222212021022200022212210212222012202212201120212222102211212222012222222212122221202221022201001122222110202002120220011222202220221120020222212222202202202021121202222012210222222022102212202122001222212201222222222222222220022122220202222102102222222002222102120200000222222221221121010220222222122222222021121220122102222212222202212022202220200222012220212222122221222210002221220220022211022202222122101112222212212222202222221020011221222222112222201121222200022112212202222112110122200122102222012220222202102220222222202102211222222121212201222000222202021212001222212021220020111222222222002202222020221200222212221222222022100122012201210222012021212212202200220210212120212200022111021000022021000122201220011222202222221222100220222222002202222220020220220222210202222212012212211020121222112102222212102221221221112221202200022111101011122201220102211220212222222122222210200220212222202222121002120222220022200212222012121022102111002222202210222222122200221222102010200210122021101111122210210202111201221222212221220101222222222222012212110100022221122102201212222122202222102110102222222001222212122200221210202022221201122001012100122211120122110210211220202220221012201222212222102212120000120202022112212202222022110002220010221222022020222212012200221201112012201211222012002102222200201222022200000220212020222102222220202222122212200011022220221012221222222202012022200121012222022100222222102220222221102010212212222212020121122121100112110201201220222021222000001220222222012202100101022202222022221002222212001112212020002222102222202222112212120201102002200220122101120102122120201212000202121221202121221220120222222222022202100220222202122202200202222122200202021001121222222211202212212222122221002001122210122012101022122011110102112200011220212221220222221221212222202202100012221212022022221102222202022212100000101222212200222212112101220221012012120200022210201201122011220102121201102220202020220200220222212222202222022201121220120212221102222022200122022021110222002222222022002212221210002222000201022100112222202021110002210202101221202121222202201222202222212202220122122220121212212012222222212202222010222222202020212222212122121211002111222202122202102221012112011012210200011220112020222011122221222222112212020110121201220012201022222012000222021021210222102001212122022100121220022002221211122100021111112202000202022200201221112120221201220221212222022212022210120222122202222112222202022222021020102222202110212202022002020202002110110220222222220021012110110012122210001221012121222220120222222212002212010111120200122102201120222012102012112220010222212002012202202112020210212020021202122221002211002002002122021200102221202020220122111222222212022202221102022212021222222111222222121102011020210222202112200012002010221221002121221201122122111110202012002022120212000222012220220202011222202212002222011112220211220202220111222102210202121210122222012010211122102110222201022002100221122002202001202121011022110201010221122020221201012220212212122222212111221212222102210222222102211112211201121022212021010202012202022220102111211202222121022121002102222002100212020220112021202201112221212222022202100110022211022212220002222212102002012120201202222020102212020021021222222222000222022020102111022101221112222201000221022120212112220220222222012222120120022211121102212211020102010112010211201022012222221122212022022220122222201221122220010221202210200012212222210220000022222122012222212212102202212020022211121022211012022002020202202100021202212111102202101110220220102111102222222121210101212222002012222210212222112021211200220222212122122222022100220210121202222200120222010222101001202022202101201012202010120220022002110211222211222112202202121022102201202222111022202010200222202022112222211112221202220022212212121012112002012211120012222200111012112002120210022222221222022000002002212220002112020212001222121221100012022221202202002222221002222222122112222012022222002222201201020212222021121002100102021220002012210210022020002110002221122022212211112222112020121102010221222102202202020212020221021012210001120222210222002122101002122111200102102102221212012002000221122212211121022221212022020202212221201220211220101222202110102212201022020221120022202111121022010112101111211012211020101222211112122221022102001212022022020222022000110202012211020220020121120211220120222221202222122001102210220212210222221102220222212110121212100001020222221211020201022110210100101012101100020122100110201011122012110012202212122001121011211000120220101002211020100220012020222221002111121001210002021200210011111022010