Author: Honza Pokorny <me@honza.ca>
8p1
008/input | 1 + 008/main.py | 38 ++++++++++++++++++++++++++++++++++++++
diff --git a/008/input b/008/input new file mode 100644 index 0000000000000000000000000000000000000000..f0b44c6f724048a59e5749e8cae54d966fe2e3d2 --- /dev/null +++ b/008/input @@ -0,0 +1 @@ +212222222222222222022222222022202022222222220220222022022012122222222221222202222222022222122201222022220202222221222220222222122222222222022222222222212222222222222222222222222122222122222222221222222022122112022222222222222202222222022220222201222012221222222220222222222222222222222221122222222222212222222222222222022222222022202222221222220222222122122022022222222222222202222222122220022212222012220202202222222221222222222222222222122222222222202222222222220222022222222222222022220222222222222222122202022222222220222202222222222020222211222112222222222222222220222222022222222221122222222222202222222222221222122222222222212122220222220222222122222222122122222221222222222222122020222200222102221202212222222222222122122222222220022222222222222222222222221222022222222122212022222222220221222022022202220222222221222222222222122120222212222012222222202202222221222022022222222220122222222222212222222222222222122222222022202222220222221220222022022122120022222222222202222222122021122220222222220222222210222220222122022222222220222222222222212222222222222222222222222122212122220222222220222022222102021222222221222222222222222020122201222102222222222211222222222022122222222221122222222222222222222222210222222222222222222122201222220222222122022102222122222222222212222222022121022211222022220202202221222221222222122222222222122222222222212222222222212222022222222222202222222222221221222202022202221122222221222212222222022020222201222112222222212212222221222022222222222220122222222222222222222212210222222222222022212122220222222220222222122122021222222222222222222222122120022221222112222222212221222220222022122222222221102222222212212222222212220222122222222222222022221222220220222012122112222222222221222212222222022020122201222202220212222221222221222022022222222222212222222212212222222212221222122222222122222122211222220222222122222112122222222222222212222222122222122212222222220212212202222221222022222222222220212222222222212222222212222222022222222122212122201222220221222222122102020122222222222222222222022021022200222112221202212211222221222122122222222222112222222202222222222202201222022222222222202122200222222221222222022002122022222222222202222222122221222201222112221222222202222222222022122222222220112222222222222222220222211222122222222022212122210222221220222222022222220021222222222202222222222022222222222022220222222221222021222022022222222220202222222222202222221222221222222222222022202222212222221220222002222222221220222221222202222222022122022211222012220202222210222220222122222222222220012222222222202222222222201222222222222022212222212222221221222112122102021122222220222212222222122220122221222122222212212222222221222222022222222221002222222222222222202222211222022222222022202222222222222220222102122122220222222220222212222222022120122222222212220202212201222122222122122222222222212222222212222222202212210222222222222022212022211222222221222022122102221222222220222222222222222021222221222122221202202210222022222122122222222221102222222202202222222202201222122222222222212222200222220222222222022202221120222221222212222222222021222201222202220212222012222022222122122222222221102222222202202222211202200222122222222022222022211222220222222112122102221122202221222202222222222220022201221202222212202110222021222222222222222221002222222202202222211212211222122222222122212222220222220221222222222210022020202221222222222222022122122212220112221202212222222222222022122222222220012222222222212222201202202222222222222122202122212222221222222222222121021220022022222212222222022020122212221002222202202121222220222022222222222221102222222202221222221202210222022222220122222022202222220220222012122220021220122122222202222222022021022210222122220222202102222021222022022222222221022222222222211222201212222222122222220022212122210222220222222022122211122122002121222212222222022221022222220212221202202020222121222022022222222221122222222212212222210222221222222222220122202022200222221222222122222101221121222120222212222222120021022201220222221212202100222221222222122222222220002222222212220222201222201222122222222222212222200222221222222012022201120221022122122212222222222121122221220112221222212010222022222122022222222222102222222202211222222212222222122222222222212122202222220222222002022211221022212022122222222222022020222220221102222212202201222220222222222222222220112222222212200222201212210222222222222022212122200222221221222102122220220220112220022212222222222022122201220112220222222001222221222022222222222222022222222222200222211200212222222222222122222222220222220222222012022010020221012222222202222222220221122222222012222202201211222221222122022222222220102222222212211222212221210222122222221122200122201222221221222102022102120122112021222222222222121022022202221212220202222100222222222122222222222221112222222212202222210200202222022221222022222122221222221221222012022122122021122222122202222222021120122200220202221202210110222121222022222222222222122222220212200222220221210222122222221222221222220222220221222222022212120020022221122222222222120022112200221202221202200102222221222022022222222221222222221212211222202120210222222221221022220022210222222220122022022211220122112122122222222222222020102221221122222212212112222021222122022222222221202222221202221222212211201222122221220022222022211222220221022202022212122020002121022202222222021222112210222202222222210102222222222022022222222220222222220212200222212012212222122220222122200222201222221220222102222220221220002021022202222222022220212210221202221222001212222221222222222222222220002222221202202222222222200222222221222022100222220222222221221122222101121020212022222212222222021120112220220022220202011002212122222122122222222220122202222222222222202202202222222222220222210222200220220221122122022002222202202022122222222222120222202201220112221212021121202120222122122222222222102212222212200222220210222222022221222122211122200221221220120002122121022121022021022222222222022222002212220012222212121112212022222022022222222220002222222212220222220011222222222221221222112222212221222221121112222120120001112021222212222222221121112211221202222222100102222122222022222222222222022212220212211222222120222022222220220112220222202221222222122102222110221110222020022222222222010120102201221112222222212120202020222122122222222220212202220212211222200122202222122222221102111022221220221222220202122102120200222020022202222222202122012212021122222202211202222220222022022222222220222222222202202222201202220022122221221202200122220221220222220022122111021212012021122212222222210222122220222222221212010112222021222122022222222221002202221212211222202211212222122220220022212122201220222220222212122001020102212120122222202222221021012222220222222212102200212221222022022222222221202212220202221222200112212022122222220022122122200222221222220022122121021122112120022212202212101220222212021002220222011222212221222122022222222222202222221012200222200210220222022222222012100022202221222222022002222200020010012021122222202222010221012222222202222202122220202221222022122222222220022202220002201222212120202012122222222002212222201220220220121212221220222122122120022202212202110122022222022122222212101111212121222122122222222221112202221202210222002022202112122221221012122022220222222220122122120012020102202222022202202222201222022211121202220212012110202120222122122222222222212212220002210222120021222012222221221012102222221222222222222122220100220212202022122222222212112121202222222102221222110000222120222122222222222220112212220202201222200111200122122222221022221022210220222220122022021120121112112022222222222212112020202202020002220202211000222021222122122222222220112202222122221222012201210112122221221212012022220222220222220112021222121102022222022222220212022222112210120222221222212210212221222222122222222222112202221002210221121202201112022222222012221222220221222220221112221211022121122120022202220222100121002202221112222222102211202222222022122222222221012212221112221220111000211022122220221022121222202220222220220002020002221202122222022202202212110121102200021202222222002200222022222222222222222222222212221112211222201111220012222220222122211222202220222221121222120022220220002222122222201202100020202220021202222212100002222120222222222222222221102212222102210222120110220002222220220012101022202222222222021112021012021201012020222210212222002020122222221122221222222101222221222122022222222220021202221122212220110111222212022221220212100222200220020221121022022221122011112022022211210202202120122200221112210202002100002220222122012222222221221212222112201222000200211122222220220022211122212221122221022212022012221010012221022201220222112121222211120222202212020222112222222122212222222221021202220202202220212110212112222220222022102022221220020222222212120010120122102020022220211202001121222220122222201222020022212020222222112222222221210222221112222222002122220202222222220012212122202220121220121222220102122000112020022211222212221122012222020112221222221100212220222222202222222220011222222022212221001101200102222221222022121022201221121221121212222101021122102021122201221222220222022202021212211222210201012120222122022222222220101202220002212220020200202012222220222012002112222220122220122222122211121111202021022212212222211021112212021222222212000001112222222022202222222221202222220000220221022010221112022221221202101022222221221221020012220202120021222121122221201222010221202201221202210202220121112222222222112222222222120202220221201222201120202212122222221202200212220221221222121122022112122000112022222210221222022021022201120002212202112201102022222222202222222221212212220001202221200001221212022222220212112002201220121220121012121201220221002221122212202202100122002202022022200222220002122022222122102222222221101222222021212221112020201012022220220122220202221220022220221002020201221201202121222202212222010120112221122012210212021212212022222022012222222221122212221102211222212020202022122220221112222122220221021201220122220012120102012122022201212202102220202200222202210222022120022120222222222222222222122202222111200221112122210122022220220212201202202222122201121102121001220202002222122200222202010220012222122122222202021211002120222122002222222221101202222222222221220212222112021222220212101212221221222220121102121100022221102222022202022222010222212202222222221222121001022020222022102222222222211222221102212220012022222122221221220022001222202221120201021122221021022022022022022211102202210122112210220022212202220002222222222222002222222220102201220011212220211001220222221222221202101112201220221221022012220221121012222120222210220202101120022202222012201222011102122221122022002222222212221012220110221221221112202112000220221202220202210221222220120212220101121021112122122221221212000220022210020212200212022022112222022122122222222212201120222120211222121121220012022220220212012202200222222202220100021022220220002220122222211222221221002101222212211202001120112020122022012222222201012220222221210221010021222022211220222022122122202220220200021110020112020101002020222202020202112222002200020022220222101112202020122222202220222201110122221100221220010201222222112220222112021002200021220200222210122021122011102222222202102012012121012222221002221202000021022022122022202220222200221011222220222221121101220102202222221202102022211120120222221211221112221121112222122212221202211220122001001112210212122212222020022002002222222202212111221100222222012112212022110222221012001012212222122212021122021011221010022222122200100020211021022111222222221212012201112121102102012220222212002011221011222221201220221002000222220002101112200020122202221120222010220212212021022200120200120222102011200102210212212201202020102102002222222220211121220111211222222000200202122220222002022002222120122210120112222111221011022022222212000120021021102221021112202212002120202120202012122221222211122100221112201220010222211022112222222022101022212120221220121201020200020000222120022201201021100020111022200022200202102101022020202122002220222201122111212021200220201022201022201220222012112102220222220201221202022200120121022120222210222000102021010200120102221202110210212022222012002221222211112101202011202221000210211102222222221012212122220120021210221212222020221012102022122201212212211121020022120122200212200112202120122212022221222212001221210212221221001222220202001221222022222112212222122202122220022000222221002120022210022120000021200011102222201222120011102021012122112220222222212202220202222220200020210002011220022012121202222120222212121222020102020120212220022102020201202022210200020222212212221010002022102002202220222221121211211101212222102201210012121220221002220222220222122221221111221010020200022021222101210110021122020001120202220222210012022020012012212222222220211220201102210220001002221222012220022102211112210221120222101120022000220222102022222121011220011020020211120122200212022012212021002122212221222201201200212000222021200021222002221220022002202002201122220221112110222221021221022120122212101110112220122121111222202222111101022121022122202222222201122201221120212120212110220122100220221220212212221121221200101212222021022012012021222220100220121112211210100012210212122102122122202212002220222202212011210101220222222222212022110222222022220022212222021200222102020011121122222022022220200120221211220002212022200012202110212222022212202222222211201000202120212121020211221112000220122010011222211220022211200112020121122121112021222111211111020121101020110022220002210012112022102212110222222220101121220021212022012020210002102220120112012102200121022212012121122011120000012122122212100200022211111102210022210002211202112121202102001220222201020012200111201121022202200012021222020220120002201122022201002102002221220211222220022001021012020221000010110202211122121022112022122112110222222210101020221220202021102110221202002222020002011222222121221211011112020020221002012020122021200120222021110002022202220112000200022122022102222220222202100210212202200022000122220202100222120000122212210121211212021221212001220000022222122221011002012212222011212222222212222012122120212012201222220201102001211010220221022020222012212221022021121022210122200110221002220112121212002022022111210022010201200202000110212122202011102022212002102222220200122212222200222220011211222122222200222210112122210022121112000222012111220121222220022121012222021022000220022201221202000022212221012202102220222210000122222121221122121210211122021212021220100102211122001210020100211101120100102221122102210120122222200110010021201022020000202020102212001220222200122110222101221120100000201122210221221222111002221121111201012000022012121222112022222020101111010100212121120202202102001112022020202012011222222222210002222001220020011210210202020201220001122222212020002002012012222122222000222020222202211100222021120021001002212002210102122021202002101201221200100011220110002102021120000201221012112111020101012011021212010122212010201221021011010111120101202121021120000002012211001001110110210100021010100002200112002220 \ No newline at end of file diff --git a/008/main.py b/008/main.py new file mode 100644 index 0000000000000000000000000000000000000000..a600516788844fbdba7fcdc1791f7b03079e7da5 --- /dev/null +++ b/008/main.py @@ -0,0 +1,38 @@ +W = 25 +H = 6 + + +def get_layers(data): + layers = [] + + while len(data): + layers.append(data[:W * H]) + data = data[W * H:] + + return layers + + +def main(): + data = open('input').read() + layers = get_layers(data) + x = {} + + for layer in layers: + assert len(layer) == W * H + zeros = filter(lambda x: x == '0', layer) + x[len(list(zeros))] = layer + + k = list(x.keys()) + k.sort() + + smallest = x[k[0]] + print(smallest) + + ones = len(list(filter(lambda x: x == '1', smallest))) + twos = len(list(filter(lambda x: x == '2', smallest))) + + print(ones * twos) + + +if __name__ == '__main__': + main()