first and second day
This commit is contained in:
commit
264e4b55ac
|
@ -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))
|
|
@ -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))
|
|
@ -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))
|
|
@ -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))
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
||||||
|
5 1 9 5
|
||||||
|
7 5 3
|
||||||
|
2 4 6 8
|
|
@ -0,0 +1,3 @@
|
||||||
|
5 9 2 8
|
||||||
|
9 4 7 3
|
||||||
|
3 8 6 5
|
Loading…
Reference in New Issue