My Advent of Code solutions in Python. kevinyap.ca/2019/12/going-fast-in-advent-of-code/
advent-of-code python
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add solution for 2018/02

+293
+41
2018/day02.py
··· 1 + import fileinput 2 + from collections import Counter 3 + 4 + BOXES = [line.strip() for line in fileinput.input()] 5 + 6 + DOUBLES = 0 7 + TRIPLES = 0 8 + COMMON = None 9 + 10 + for box_1 in BOXES: 11 + doubles = 0 12 + triples = 0 13 + 14 + for char, count in Counter(box_1).items(): 15 + if count == 2: 16 + doubles += 1 17 + elif count == 3: 18 + triples += 1 19 + 20 + if doubles > 0: 21 + DOUBLES += 1 22 + 23 + if triples > 0: 24 + TRIPLES += 1 25 + 26 + for box_2 in BOXES: 27 + if box_1 == box_2: 28 + continue 29 + 30 + diffs = 0 31 + 32 + for i in range(len(box_1)): 33 + if box_1[i] != box_2[i]: 34 + diffs += 1 35 + 36 + if diffs == 1: 37 + COMMON = ''.join(a for a, b in zip(box_1, box_2) if a == b) 38 + 39 + 40 + print "Checksum for list of box IDs:", DOUBLES * TRIPLES 41 + print "Common letters for right IDs:", COMMON
+250
2018/inputs/02.txt
··· 1 + jplenqtlagxhivmwmscfukzodp 2 + jbrehqtlagxhivmeyscfuvzodp 3 + jbreaqtlagxzivmwysofukzodp 4 + jxrgnqtlagxhivmwyscfukwodp 5 + jbrenqtwagjhivmwysxfukzodp 6 + jbrenqplagxhivmwyscfuazoip 7 + jbrenqtlagxhivzwyscfldzodp 8 + jbrefqtlagxhizmwyfcfukzodp 9 + jbrenqtlagxhevmwfsafukzodp 10 + jbrunqtlagxrivmsyscfukzodp 11 + jbrenqtlaguhivmwyhlfukzodp 12 + jbrcnstsagxhivmwyscfukzodp 13 + jbrenqtlagozivmwyscbukzodp 14 + jbrenqwlagxhivswysrfukzodp 15 + jbrenstlagxhuvmiyscfukzodp 16 + jbranqtlhgxhivmwysnfukzodp 17 + jbrenqtvagxhinmxyscfukzodp 18 + jbrenqtlagdhivmwyscfukxody 19 + jbrenqtlagelavmwyscfukzodp 20 + jbrenqtlagxhtvmwyhcfukzbdp 21 + jbrenqwlagxhivmwyscfutzopp 22 + jbrenqtlavxhibmtyscfukzodp 23 + jbronqtlagxnivmwyscfuzzodp 24 + jbredqtlagxhppmwyscfukzodp 25 + jbrcnqtlogxhivmwysxfukzodp 26 + jbremqtlagehivswyscfukzodp 27 + jbrenqolagxhivmcyscfukzokp 28 + jbrehqtlacxhgvmwyscfukzodp 29 + fbrlnqtlagxhivmwyscbukzodp 30 + zbrfnqtlagxhivrwyscfukzodp 31 + jbregqtlagxnivmwyscfhkzodp 32 + jbrenqtllgxnivmwystfukzodp 33 + jurenqtlagxhivmwyscfulzoup 34 + jbrenitdagxhivmwyxcfukzodp 35 + jbrenqtlagxqivmwyscvuszodp 36 + jbqenqwlagxhivmwyscfckzodp 37 + jbrenqtlagxhivmwxscqupzodp 38 + jbrenqtlagxhivmwysciuqiodp 39 + jbrjnjtlagxhivmwyscfukzode 40 + jbrenqtlagxhuvmwqscfukzods 41 + jbrenqtlagxhuvmuyscfukzudp 42 + ibrenqtlagxhivmwyscfuktokp 43 + jbsenqtlagxhivcwyscfuksodp 44 + jbrfnntlagxhivmwnscfukzodp 45 + jzrenqulagxhivmwyscfukzodx 46 + jbrenqtqygxhivmwyscfukzwdp 47 + jbrenqtlagxfixmwyscfukzcdp 48 + jbrenqaoagxhivmwyshfukzodp 49 + jbrenqtlazxhivmworcfukzodp 50 + jbrenqtlagxhicowyscfukrodp 51 + jbrqnqtlagxhivzwyzcfukzodp 52 + jbrenqtlalxhuvxwyscfukzodp 53 + jbrenqtlqgxhhviwyscfukzodp 54 + jbrenqtuggxhivmoyscfukzodp 55 + jbrenqtlagxpivmwyscfukkodw 56 + zbrenqhlagxhivmwyscdukzodp 57 + jbrenutlagxxivmwyscfukzoqp 58 + obrenqtlagxhivmwxscfuszodp 59 + jbrenqtlagxhlvmwyscfuixodp 60 + rbrenqtlagdhixmwyscfukzodp 61 + jbrenqtlagxhivmwescfyszodp 62 + jbrfnqtlagxhivmwyscaukzhdp 63 + jbrenqtiagxhivmbyscfuxzodp 64 + cbrrnqtuagxhivmwyscfukzodp 65 + jbkenqtlagxhigmwysufukzodp 66 + jbjewqtlagxhivmwyscfuqzodp 67 + jbrznqtlagxvivmwyscfukzovp 68 + jbrenttlacxhivmwyscfhkzodp 69 + jblenqtlagxhivmwylcfukaodp 70 + jbrenqtlagxhivmqysiftkzodp 71 + jbrenqtlagwhikmwyscfukqodp 72 + jbrenqtlegxhivmwvsckukzodp 73 + jbrenqwzagxhiamwyscfukzodp 74 + jbrenqtlagxhivcwyscfgkzodc 75 + jbrenqtlagxxhvmwxscfukzodp 76 + jbrenqtlngxhivmwyscfukoowp 77 + jbreomtlagxhivmwpscfukzodp 78 + jfrenqtlagxhivmwyscnumzodp 79 + jbrenqtlagphipmwyscfukfodp 80 + jvrenqtlagxhivmwyscfmkzodw 81 + jbrenqtlaxxoiemwyscfukzodp 82 + jbrenqtlagxhivmwyscemkzpdp 83 + jbrenyjldgxhivmwyscfukzodp 84 + jbrenqtlagxhivfvyspfukzodp 85 + kbrenctlakxhivmwyscfukzodp 86 + jbrmhqtlagxhivmwyscfuizodp 87 + jbjenqtlagxlivmbyscfukzodp 88 + jbrenqtlaaxhivmmyshfukzodp 89 + jbronqtlagxhirmvyscfukzodp 90 + jbcrnqtlagxwivmwyscfukzodp 91 + jxrenszlagxhivmwyscfukzodp 92 + jbpenqtlagxhivmwyscfukkody 93 + jbrewqtlawxhivmwyscfukzhdp 94 + jbrenqylagxhivmwlxcfukzodp 95 + jbrenqtlagxxivtwywcfukzodp 96 + jbrenqtlagxhcvgayscfukzodp 97 + jbrenitlagxhivmwiscfukzohp 98 + jbrenutlagxhivmwyscbukvodp 99 + nbrenqtlagxhivmwysnfujzodp 100 + jbrenqtlagxhivmwyqcfupzoop 101 + jbrenqtrarxhijmwyscfukzodp 102 + jbrenqtlagxhivmwysdfukzovy 103 + jbrrnqtlagxhivmwyvcfukzocp 104 + jbrenqtlagxhivmwyscfuvzzhp 105 + jbhenitlagxhivmwysufukzodp 106 + jbrenqtlagxhivmwyscfuwzoqx 107 + kbrenqtlagxhivmwysqfdkzodp 108 + jbrenqtlagxhivmwyxmfukzodx 109 + jbcenatlagxxivmwyscfukzodp 110 + jbrenhtlagvhdvmwyscfukzodp 111 + jxrenqtlafxhivfwyscfukzodp 112 + jbreaztlpgxhivmwyscfukzodp 113 + tqrenqtlagxfivmwyscfukzodp 114 + jbrenqgllgxhwvmwyscfukzodp 115 + jbrejjtlagxhivmgyscfukzodp 116 + jbrenqtlagxhivmwyscvukzoqv 117 + jbrvnqtlagxsibmwyscfukzodp 118 + jbrenqttagxhuvmwyscfukvodp 119 + jbrenqteagxhivmwcscfukqodp 120 + jbrenqtsabxhivmwyspfukzodp 121 + jbbenqtlagxhivmwyscjukztdp 122 + jnrenqtlagxhiimwydcfukzodp 123 + jbrenqtlagxhfvmwyscxukzodu 124 + jbrenqtluyxhiomwyscfukzodp 125 + jbrenqvlagxhivmwyscuukzolp 126 + ebrenqtlagxnivmwysrfukzodp 127 + jbreeqtlatxhigmwyscfukzodp 128 + jbrenqtvxgxhivmwyscfukzedp 129 + jbrmnqtlagxhivmwywcfuklodp 130 + jbreeqtvagxhivmwyscfukzody 131 + jbrenptlagxhivmxyscfumzodp 132 + jbrenqtlagxhivmwysgfukzfsp 133 + jurenqtlagjhivmwkscfukzodp 134 + jbrenntlagxhivmwtscffkzodp 135 + jbrenqglagxhivmwyocfokzodp 136 + wbrenqtlagxhivmwhscfukiodp 137 + jbrenqtligxhivmqascfukzodp 138 + jbrenqtlagxhivmwxscfukpojp 139 + jurenqtlagxhivmmyscfbkzodp 140 + jbrenqtmagxhivmwyscfrbzodp 141 + jcrenqtlagxhivmwysefukzodm 142 + jbrenqtlagxhicmwywcfukzodl 143 + jbvanqtlagfhivmwyscfukzodp 144 + jbmenqjlagxhivmwyscfdkzodp 145 + jbrenqtlagohivvwysctukzodp 146 + jbrenqtdagxdivmwyscfckzodp 147 + kbrefqtlagxhivmwyscfuazodp 148 + jbrwnqtoagxhivmwyswfukzodp 149 + jjhenqtlagxhivmwyscfukzorp 150 + jbgsnqtlagxhivkwyscfukzodp 151 + jbrynqtlagxhivmsyspfukzodp 152 + jbrenftlmkxhivmwyscfukzodp 153 + nbrenqtxagxhmvmwyscfukzodp 154 + jbrunqtlagxhijmwysmfukzodp 155 + jbrenqtlagmaivmwyscfukzowp 156 + jbrerqtlagxhihmwyscfukzudp 157 + jbrenqtlagahivmwysckukzokp 158 + kbrenqtlagxhirmwyscfupzodp 159 + jbrrnqtlagxhivmwyecfukzodz 160 + jbrenqtlavxhivmwyscfusiodp 161 + jnrenqtlagxhivmwyhcfukzodw 162 + jbretqtlagfhivmwyscfukzrdp 163 + jbreoqtnagxhivmwyscfukzopp 164 + jbrenbtllgxhivmwsscfukzodp 165 + jbrenqtlmgxhivmwyscfuwzedp 166 + jbnenqtlagxhivbwyscfukzokp 167 + jbrenqslagxhivmvyscfukzndp 168 + jbrenqtlagxzivmwuscfukztdp 169 + gbrenqtlagxhyvmwyscfukjodp 170 + jbrenqteagxhivmwyscfuszedp 171 + jbrenqtlaglhivmwysafukkodp 172 + jbrenqtlagxhcvmwascfukzogp 173 + jbrenqtlagxhsvmkcscfukzodp 174 + jbrenqslbgxhivmwyscfufzodp 175 + cbrenqtlagxhivkwtscfukzodp 176 + jbrenqtltgxhivmzyscfukzodj 177 + jbrgnqtlagihivmwyycfukzodp 178 + vbrenqauagxhivmwyscfukzodp 179 + jbrqnqtlagjhivmwyscfqkzodp 180 + jbrenqtlakxhivmwyscfukvobp 181 + jcrenqelagxhivmwtscfukzodp 182 + jbrrnqtlagxhlvmwyscfukzodw 183 + jbrenqtlagxhivmwkscaumzodp 184 + jbrenqdlagxhivmiescfukzodp 185 + jhrenqtlagxhqvmwyscmukzodp 186 + jbrenqtlaghhivmwyscfukkoyp 187 + jowenqtlagxyivmwyscfukzodp 188 + jbrenitaagxhivmwyscfqkzodp 189 + jbrenqtlagxhivmwyscfnkbudp 190 + jbyenqtlagxhivmiyscfukzhdp 191 + jbrenitlagxhibjwyscfukzodp 192 + jbrenqtlavxhjvmwpscfukzodp 193 + jbrenqyaagxhivmwyscflkzodp 194 + jbrenqylagxhivmwyicfupzodp 195 + jbrenqtlagxmevmwylcfukzodp 196 + lbrenqtlagxhiqmwyscfikzodp 197 + jbrenqtnarxhivmwyscfmkzodp 198 + jbrenqtlamxhivmwyscfnkzorp 199 + jbbenqtlavxhivmwyscjukztdp 200 + jbrenqtlagxhivmwyscfnliodp 201 + jbwenetlagxhivmwyscfukzodt 202 + jbrenatlagxhivmwysmfujzodp 203 + jbrsnstlagxhivmwyscfukgodp 204 + jbwvnitlagxhivmwyscfukzodp 205 + jbrenqtbagxhkvmwypcfukzodp 206 + jbrlnqtlafxhivmwyscfukdodp 207 + jbrenztlanxhivmwyscjukzodp 208 + jbrepqtlagxhivmwudcfukzodp 209 + jbrenqtlagxiivmwdscfskzodp 210 + jbrdjqtlagxhivmwyschukzodp 211 + jbrenqtoaguhivmwyccfukzodp 212 + jdrexqjlagxhivmwyscfukzodp 213 + jbrenqtlagxhovmwysckukaodp 214 + pbrfnqblagxhivmwyscfukzodp 215 + jbrenqtlagxrivgiyscfukzodp 216 + jbrelqtgagxhivmryscfukzodp 217 + jbrenqtlagxhicmwjscfikzodp 218 + jbrenqjlagxhivmwyscfmkjodp 219 + jbrenqtlagxpivmwzscgukzodp 220 + jbienqzlagxpivmwyscfukzodp 221 + jbrenqvlagxhivmwdscfukzodx 222 + owrenqtlagxhivmwyicfukzodp 223 + gbrenqtlaathivmwyscfukzodp 224 + jbgenqtlafxhivmwysqfukzodp 225 + jbrenqtlagxhivtwsscfukzokp 226 + jbrnnqylanxhivmwyscfukzodp 227 + ebrenqolagxhivmcyscfukzodp 228 + jbrenqtlarnhivgwyscfukzodp 229 + jbmenqtlagxhivmvyscfukzgdp 230 + jbrevqtlaglhivmwystfukzodp 231 + jbrenqplanthivmwyscfukzodp 232 + jbrenqtlagxhivmkyscbukzosp 233 + jbrenqtlagxaivmwyscfugzodo 234 + jbrenqplagxhnvmwyscfjkzodp 235 + jbrenqtlagxhivgwyscfusrodp 236 + cbrenqtlagxhivmwysmfukzody 237 + jbrenquwaexhivmwyscfukzodp 238 + jbredqtlagxhdvmwyscfukzoup 239 + jbrxnqtlagxhivmwysczukaodp 240 + jbrenqtlafnhivmwyscfuczodp 241 + jbbdkqtlagxhivmwyscfukzodp 242 + ubrenqtlagxhivkwyucfukzodp 243 + ebjenqtlagxhivmwyscfukzodj 244 + jbgenqtlugxxivmwyscfukzodp 245 + jbrenqtoagxqivmwdscfukzodp 246 + bbeenqtlagxhivmwyscfumzodp 247 + jbfeeqtlagxhivmwmscfukzodp 248 + jbrlnqtlagxhiimwescfukzodp 249 + jbrenqtlagwoivmwyscfukhodp 250 + jbrenqtlagnhivmwyscfuszovp
+2
2018/outputs/02.txt
··· 1 + 8118 2 + jbbenqtlaxhivmwyscjukztdp