commit 264e4b55ac7eebcd0ae40f5eabed1fabe978974d Author: Pedro de Oliveira Date: Sun Dec 3 00:04:58 2017 +0000 first and second day diff --git a/1/1p1.py b/1/1p1.py new file mode 100755 index 0000000..06ceaa6 --- /dev/null +++ b/1/1p1.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +inputs = [ + "1122", + "1111", + "1234", + "91212129", + "8231753674683997878179259195565332579493378483264978184143341284379682788518559178822225126625428318115396632681141871952894291898364781898929292614792884883249356728741993224889167928232261325123447569829932951268292953928766755779761837993812528527484487298117739869189415599461746944992651752768158611996715467871381527675219481185217357632445748912726487669881876129192932995282777848496561259839781188719233951619188388532698519298142112853776942545211859134185231768952888462471642851588368445761489225786919778983848113833773768236969923939838755997989537648222217996381757542964844337285428654375499359997792679256881378967852376848812795761118139288152799921176874256377615952758268844139579622754965461884862647423491918913628848748756595463191585555385849335742224855473769411212376446591654846168189278959857681336724221434846946124915271196433144335482787432683848594487648477532498952572515118864475621828118274911298396748213136426357769991314661642612786847135485969889237193822718111269561741563479116832364485724716242176288642371849569664594194674763319687735723517614962575592111286177553435651952853878775431234327919595595658641534765455489561934548474291254387229751472883423413196845162752716925199866591883313638846474321161569892518574346226751366315311145777448781862222126923449311838564685882695889397531413937666673233451216968414288135984394249684886554812761191289485457945866524228415191549168557957633386991931186773843869999284468773866221976873998168818944399661463963658784821796272987155278195355579386768156718813624559264574836134419725187881514665834441359644955768658663278765363789664721736533517774292478192143934318399418188298753351815388561359528533778996296279366394386455544446922653976725113889842749182361253582433319351193862788433113852782596161148992233558144692913791714859516653421917841295749163469751479835492713392861519993791967927773114713888458982796514977717987598165486967786989991998142488631168697963816156374216224386193941566358543266646516247854435356941566492841213424915682394928959116411457967897614457497279472661229548612777155998358618945222326558176486944695689777438164612198225816646583996426313832539918" + ] + +def solve(puzzle): + total = 0 + + for i in range(len(puzzle)): + if puzzle[i] == puzzle[i - 1]: + total += int(puzzle[i]) + + return total + + +for puzzle in inputs: + print(puzzle, solve(puzzle)) diff --git a/1/1p2.py b/1/1p2.py new file mode 100755 index 0000000..b0723b4 --- /dev/null +++ b/1/1p2.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +inputs = [ + "1212", + "1221", + "123425", + "123123", + "12131415", + "8231753674683997878179259195565332579493378483264978184143341284379682788518559178822225126625428318115396632681141871952894291898364781898929292614792884883249356728741993224889167928232261325123447569829932951268292953928766755779761837993812528527484487298117739869189415599461746944992651752768158611996715467871381527675219481185217357632445748912726487669881876129192932995282777848496561259839781188719233951619188388532698519298142112853776942545211859134185231768952888462471642851588368445761489225786919778983848113833773768236969923939838755997989537648222217996381757542964844337285428654375499359997792679256881378967852376848812795761118139288152799921176874256377615952758268844139579622754965461884862647423491918913628848748756595463191585555385849335742224855473769411212376446591654846168189278959857681336724221434846946124915271196433144335482787432683848594487648477532498952572515118864475621828118274911298396748213136426357769991314661642612786847135485969889237193822718111269561741563479116832364485724716242176288642371849569664594194674763319687735723517614962575592111286177553435651952853878775431234327919595595658641534765455489561934548474291254387229751472883423413196845162752716925199866591883313638846474321161569892518574346226751366315311145777448781862222126923449311838564685882695889397531413937666673233451216968414288135984394249684886554812761191289485457945866524228415191549168557957633386991931186773843869999284468773866221976873998168818944399661463963658784821796272987155278195355579386768156718813624559264574836134419725187881514665834441359644955768658663278765363789664721736533517774292478192143934318399418188298753351815388561359528533778996296279366394386455544446922653976725113889842749182361253582433319351193862788433113852782596161148992233558144692913791714859516653421917841295749163469751479835492713392861519993791967927773114713888458982796514977717987598165486967786989991998142488631168697963816156374216224386193941566358543266646516247854435356941566492841213424915682394928959116411457967897614457497279472661229548612777155998358618945222326558176486944695689777438164612198225816646583996426313832539918" + ] + +def solve(puzzle): + total = 0 + + l = len(puzzle) + h = int(l / 2) + + for i in range(len(puzzle)): + if puzzle[i] == puzzle[i - h]: + total += int(puzzle[i]) + + return total + + +for puzzle in inputs: + print(puzzle, solve(puzzle)) diff --git a/2/2p1.py b/2/2p1.py new file mode 100755 index 0000000..7956e13 --- /dev/null +++ b/2/2p1.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import csv + +inputs = [ "part1.txt", "input.txt" ] + +def solve(filename): + total = 0 + with open(filename) as tsv: + for line in csv.reader(tsv, dialect="excel-tab"): + difference = None + big = None + small = None + + for item in line: + i = int(item) + if big == None and small == None: + big = i + small = i + + if i > big: + big = i + if i < small: + small = i + difference = big - small + total += difference + + return int(total) + + +for puzzle in inputs: + print(puzzle, solve(puzzle)) diff --git a/2/2p2.py b/2/2p2.py new file mode 100755 index 0000000..fe6f0ee --- /dev/null +++ b/2/2p2.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import csv + +inputs = [ "part2.txt", "input.txt" ] + +def solve(filename): + total = 0 + with open(filename) as tsv: + for line in csv.reader(tsv, dialect="excel-tab"): + + l = [] + for item in line: + i = int(item) + l.append(i) + + for i in range(len(l)): + for i2 in range(i + 1, len(l)): + a1 = l[i] / l[i2] + a2 = l[i2] / l[i] + if float.is_integer(a1): + total += a1 + elif float.is_integer(a2): + total += a2 + + return int(total) + + +for puzzle in inputs: + print(puzzle, solve(puzzle)) diff --git a/2/input.txt b/2/input.txt new file mode 100644 index 0000000..a6a158a --- /dev/null +++ b/2/input.txt @@ -0,0 +1,16 @@ +121 59 141 21 120 67 58 49 22 46 56 112 53 111 104 130 +1926 1910 760 2055 28 2242 146 1485 163 976 1842 1982 137 1387 162 789 +4088 258 2060 1014 4420 177 4159 194 2794 4673 4092 681 174 2924 170 3548 +191 407 253 192 207 425 580 231 197 382 404 472 164 571 500 216 +4700 1161 168 5398 5227 5119 252 2552 4887 5060 1152 3297 847 4525 220 262 +2417 992 1445 184 554 2940 209 2574 2262 1911 2923 204 2273 2760 506 157 +644 155 638 78 385 408 152 360 588 618 313 126 172 220 217 161 +227 1047 117 500 1445 222 29 913 190 791 230 1281 1385 226 856 1380 +436 46 141 545 122 86 283 124 249 511 347 502 168 468 117 94 +2949 3286 2492 2145 1615 159 663 1158 154 939 166 2867 141 324 2862 641 +1394 151 90 548 767 1572 150 913 141 1646 154 1351 1506 1510 707 400 +646 178 1228 1229 270 167 161 1134 193 1312 1428 131 1457 719 1288 989 +1108 1042 93 140 822 124 1037 1075 125 941 1125 298 136 94 135 711 +112 2429 1987 2129 2557 1827 477 100 78 634 352 1637 588 77 1624 2500 +514 218 209 185 197 137 393 555 588 569 710 537 48 309 519 138 +1567 3246 4194 151 3112 903 1575 134 150 4184 3718 4077 180 4307 4097 1705 \ No newline at end of file diff --git a/2/part1.txt b/2/part1.txt new file mode 100644 index 0000000..5a36440 --- /dev/null +++ b/2/part1.txt @@ -0,0 +1,3 @@ +5 1 9 5 +7 5 3 +2 4 6 8 \ No newline at end of file diff --git a/2/part2.txt b/2/part2.txt new file mode 100644 index 0000000..3ca9a88 --- /dev/null +++ b/2/part2.txt @@ -0,0 +1,3 @@ +5 9 2 8 +9 4 7 3 +3 8 6 5 \ No newline at end of file