Skip to content

Commit 49be37b

Browse files
committed
added 2015/day08
1 parent a843300 commit 49be37b

File tree

4 files changed

+352
-1
lines changed

4 files changed

+352
-1
lines changed

2015/day08/answers.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
1350
2+
2085

2015/day08/input.txt

+300
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
"qxfcsmh"
2+
"ffsfyxbyuhqkpwatkjgudo"
3+
"byc\x9dyxuafof\\\xa6uf\\axfozomj\\olh\x6a"
4+
"jtqvz"
5+
"uzezxa\"jgbmojtwyfbfguz"
6+
"vqsremfk\x8fxiknektafj"
7+
"wzntebpxnnt\"vqndz\"i\x47vvjqo\""
8+
"higvez\"k\"riewqk"
9+
"dlkrbhbrlfrp\\damiauyucwhty"
10+
"d\""
11+
"qlz"
12+
"ku"
13+
"yy\"\"uoao\"uripabop"
14+
"saduyrntuswlnlkuppdro\\sicxosted"
15+
"tj"
16+
"zzphopswlwdhebwkxeurvizdv"
17+
"xfoheirjoakrpofles\"nfu"
18+
"q\xb7oh\"p\xce\"n"
19+
"qeendp\"ercwgywdjeylxcv"
20+
"dcmem"
21+
"\"i\x13r\"l"
22+
"ikso\xdcbvqnbrjduh\"uqudzki\xderwk"
23+
"wfdsn"
24+
"pwynglklryhtsqbno"
25+
"hcoj\x63iccz\"v\"ttr"
26+
"zf\x23\\hlj\\kkce\\d\\asy\"yyfestwcdxyfj"
27+
"xs"
28+
"m\"tvltapxdvtrxiy"
29+
"bmud"
30+
"k\"a"
31+
"b\"oas"
32+
"\"yexnjjupoqsxyqnquy\"uzfdvetqrc"
33+
"vdw\xe3olxfgujaj"
34+
"qomcxdnd\"\\cfoe\""
35+
"fpul"
36+
"m\"avamefphkpv"
37+
"vvdnb\\x\\uhnxfw\"dpubfkxfmeuhnxisd"
38+
"hey\\"
39+
"ldaeigghlfey"
40+
"eure\"hoy\xa5iezjp\\tm"
41+
"yygb\"twbj\\r\"\x10gmxuhmp\""
42+
"weirebp\x39mqonbtmfmd"
43+
"ltuz\\hs\"e"
44+
"ysvmpc"
45+
"g\x8amjtt\"megl\"omsaihifwa"
46+
"yimmm"
47+
"iiyqfalh"
48+
"cwknlaaf"
49+
"q\x37feg\xc6s\"xx"
50+
"uayrgeurgyp\\oi"
51+
"xhug\"pt\"axugllbdiggzhvy"
52+
"kdaarqmsjfx\xc3d"
53+
"\"vkwla"
54+
"d\""
55+
"tmroz\"bvfinxoe\\mum\"wmm"
56+
"\"n\"bbswxne\\p\\yr\"qhwpdd"
57+
"skzlkietklkqovjhvj\xfe"
58+
"pbg\\pab\"bubqaf\"obzcwxwywbs\\dhtq"
59+
"xxjidvqh\"lx\\wu\"ij"
60+
"daef\x5fe\x5b\\kbeeb\x13qnydtboof"
61+
"ogvazaqy\"j\x73"
62+
"y"
63+
"n\"tibetedldy\\gsamm\"nwu"
64+
"wldkvgdtqulwkad"
65+
"dpmxnj"
66+
"twybw\"cdvf\"mjdajurokbce"
67+
"ru\"\\lasij\"i"
68+
"roc\\vra\\lhrm"
69+
"pbkt\x60booz\"fjlkc"
70+
"j\x4dytvjwrzt"
71+
"\\uiwjkniumxcs"
72+
"cbhm\"nexccior\"v\"j\"nazxilmfp\x47"
73+
"qdxngevzrlgoq"
74+
"\"lrzxftytpobsdfyrtdqpjbpuwmm\x9e"
75+
"mdag\x0asnck\xc2ggj\"slb\"fjy"
76+
"wyqkhjuazdtcgkcxvjkpnjdae"
77+
"aixfk\xc0iom\x21vueob"
78+
"dkiiakyjpkffqlluhaetires"
79+
"ysspv\"lysgkvnmwbbsy"
80+
"gy\"ryexcjjxdm\"xswssgtr"
81+
"s"
82+
"ddxv"
83+
"qwt\"\x27puilb\"pslmbrsxhrz"
84+
"qdg\xc9e\\qwtknlvkol\x54oqvmchn\\"
85+
"lvo"
86+
"b"
87+
"fk\"aa\"\"yenwch\\\\on"
88+
"srig\x63hpwaavs\\\x80qzk\"xa\"\xe6u\\wr"
89+
"yxjxuj\"ghyhhxfj\"\xa6qvatre"
90+
"yoktqxjxkzrklkoeroil"
91+
"\"jfmik\""
92+
"smgseztzdwldikbqrh\""
93+
"jftahgctf\"hoqy"
94+
"tcnhicr\"znpgckt\"ble"
95+
"vqktnkodh\"lo\"a\\bkmdjqqnsqr"
96+
"ztnirfzqq"
97+
"s"
98+
"xx"
99+
"iqj\"y\\hqgzflwrdsusasekyrxbp\\ad"
100+
"\\xzjhlaiynkioz\"\"bxepzimvgwt"
101+
"s\x36rbw"
102+
"mniieztwrisvdx"
103+
"atyfxioy\x2b\\"
104+
"irde\x85\x5cvbah\\jekw\"ia"
105+
"bdmftlhkwrprmpat\"prfaocvp"
106+
"w\\k"
107+
"umbpausy"
108+
"zfauhpsangy"
109+
"p\"zqyw"
110+
"wtztypyqvnnxzvlvipnq\"zu"
111+
"deicgwq\\oqvajpbov\\or\"kgplwu"
112+
"mbzlfgpi\\\\zqcidjpzqdzxityxa"
113+
"lfkxvhma"
114+
"\xf2yduqzqr\"\\fak\"p\"n"
115+
"mpajacfuxotonpadvng"
116+
"anb\\telzvcdu\\a\xf2flfq"
117+
"lrs\"ebethwpmuuc\"\x86ygr"
118+
"qmvdbhtumzc\"ci"
119+
"meet"
120+
"yopg\x0fdxdq\"h\\ugsu\xffmolxjv"
121+
"uhy"
122+
"fzgidrtzycsireghazscvmwcfmw\\t"
123+
"cqohkhpgvpru"
124+
"bihyigtnvmevx\"xx"
125+
"xz"
126+
"zofomwotzuxsjk\"q\"mc\"js\"dnmalhxd"
127+
"\\ktnddux\\fqvt\"ibnjntjcbn"
128+
"ia"
129+
"htjadnefwetyp\xd5kbrwfycbyy"
130+
"\"\\hkuxqddnao"
131+
"meqqsz\x83luecpgaem"
132+
"cvks\x87frvxo\"svqivqsdpgwhukmju"
133+
"sgmxiai\\o\"riufxwjfigr\xdf"
134+
"fgywdfecqufccpcdn"
135+
"faghjoq\x28abxnpxj"
136+
"zuppgzcfb\"dctvp\"elup\"zxkopx"
137+
"xqs\x45xxdqcihbwghmzoa"
138+
"anbnlp\\cgcvm\"hc"
139+
"xf\"fgrngwzys"
140+
"nrxsjduedcy\x24"
141+
"\x71sxl\"gj\"sds\"ulcruguz\\t\\ssvjcwhi"
142+
"jhj\"msch"
143+
"qpovolktfwyiuyicbfeeju\x01"
144+
"nkyxmb\"qyqultgt\"nmvzvvnxnb"
145+
"ycsrkbstgzqb\"uv\\cisn"
146+
"s"
147+
"ueptjnn\"\"sh"
148+
"lp\"z\"d\"mxtxiy"
149+
"yzjtvockdnvbubqabjourf\"k\"uoxwle"
150+
"\x82\"wqm\""
151+
"\xb5cwtuks\x5fpgh"
152+
"wd"
153+
"tbvf"
154+
"ttbmzdgn"
155+
"vfpiyfdejyrlbgcdtwzbnm"
156+
"uc"
157+
"otdcmhpjagqix"
158+
"\\\xb1qso\"s"
159+
"scowax"
160+
"behpstjdh\xccqlgnqjyz\"eesn"
161+
"r\xe1cbnjwzveoomkzlo\\kxlfouhm"
162+
"jgrl"
163+
"kzqs\\r"
164+
"ctscb\x7fthwkdyko\"\x62pkf\"d\xe6knmhurg"
165+
"tc\"kw\x3ftt"
166+
"bxb\x5ccl"
167+
"jyrmfbphsldwpq"
168+
"jylpvysl\"\"juducjg"
169+
"en\\m\"kxpq\"wpb\\\""
170+
"madouht\"bmdwvnyqvpnawiphgac\""
171+
"vuxpk\"ltucrw"
172+
"aae\x60arr"
173+
"ttitnne\"kilkrgssnr\xfdurzh"
174+
"oalw"
175+
"pc\"\"gktkdykzbdpkwigucqni\"nxiqx"
176+
"dbrsaj"
177+
"bgzsowyxcbrvhtvekhsh\"qgd"
178+
"kudfemvk\"\"\"hkbrbil\"chkqoa"
179+
"zjzgj\\ekbhyfzufy"
180+
"\\acos\"fqekuxqzxbmkbnn\x1ejzwrm"
181+
"elxahvudn\"txtmomotgw"
182+
"\x2eoxmwdhelpr\"cgi\xf7pzvb"
183+
"eapheklx"
184+
"hfvma\"mietvc\"tszbbm\"czex"
185+
"h\"iiockj\\\xc1et"
186+
"d\"rmjjftm"
187+
"qlvhdcbqtyrhlc\\"
188+
"yy\"rsucjtulm\"coryri\"eqjlbmk"
189+
"tv"
190+
"r\"bfuht\\jjgujp\""
191+
"kukxvuauamtdosngdjlkauylttaokaj"
192+
"srgost\"\"rbkcqtlccu\x65ohjptstrjkzy"
193+
"yxwxl\\yjilwwxffrjjuazmzjs"
194+
"dxlw\\fkstu\"hjrtiafhyuoh\"sewabne"
195+
"\x88sj\"v"
196+
"rfzprz\xec\"oxqclu\"krzefp\\q"
197+
"cfmhdbjuhrcymgxpylllyvpni"
198+
"ucrmjvmimmcq\x88\xd9\"lz"
199+
"lujtt\""
200+
"gvbqoixn\"pmledpjmo\"flydnwkfxllf"
201+
"dvxqlbshhmelsk\x8big\"l"
202+
"mx\x54lma\x8bbguxejg"
203+
"\x66jdati\xeceieo"
204+
"\"iyyupixei\x54ff"
205+
"xohzf\"rbxsoksxamiu"
206+
"vlhthspeshzbppa\x4drhqnohjop\"\"mfjd"
207+
"f\"tvxxla\"vurian\"\"idjq\x3aptm\xc3olep"
208+
"gzqz"
209+
"kbq\\wogye\\altvi\\hbvmodny"
210+
"j\xd8"
211+
"ofjozdhkblvndl"
212+
"hbitoupimbawimxlxqze"
213+
"ypeleimnme"
214+
"xfwdrzsc\\oxqamawyizvi\\y"
215+
"enoikppx\xa1ixe\"yo\"gumye"
216+
"fb"
217+
"vzf"
218+
"zxidr"
219+
"cu\x31beirsywtskq"
220+
"lxpjbvqzztafwezd"
221+
"\\jyxeuo\x18bv"
222+
"b\"vawc\"p\\\\giern\"b"
223+
"odizunx\"\"t\\yicdn\"x\"sdiz"
224+
"\"\"tebrtsi"
225+
"ctyzsxv\xa6pegfkwsi\"tgyltaakytccb"
226+
"htxwbofchvmzbppycccliyik\xe5a"
227+
"ggsslefamsklezqkrd"
228+
"rcep\"fnimwvvdx\"l"
229+
"zyrzlqmd\x12egvqs\\llqyie"
230+
"\x07gsqyrr\\rcyhyspsvn"
231+
"butg\""
232+
"gb"
233+
"gywkoxf\"jsg\\wtopxvumirqxlwz"
234+
"rj\"ir\"wldwveair\x2es\"dhjrdehbqnzl"
235+
"ru\"elktnsbxufk\\ejufjfjlevt\\lrzd"
236+
"\"widsvok"
237+
"oy\"\x81nuesvw"
238+
"ay"
239+
"syticfac\x1cfjsivwlmy\"pumsqlqqzx"
240+
"m"
241+
"rjjkfh\x78cf\x2brgceg\"jmdyas\"\\xlv\xb6p"
242+
"tmuvo\"\x3ffdqdovjmdmkgpstotojkv\"as"
243+
"jd\\ojvynhxllfzzxvbn\"wrpphcvx"
244+
"pz"
245+
"\"twr"
246+
"n\\hdzmxe\"mzjjeadlz"
247+
"fb\"rprxuagvahjnri"
248+
"rfmexmjjgh\\xrnmyvnatrvfruflaqjnd"
249+
"obbbde\"co\"qr\"qpiwjgqahqm\\jjp\""
250+
"vpbq\"\"y\"czk\\b\x52ed\"lnzepobp"
251+
"syzeajzfarplydipny\"y\"\xe8ad"
252+
"mpyodwb"
253+
"\x47rakphlqqptd"
254+
"wa\"oj\"aiy"
255+
"a"
256+
"ropozx"
257+
"q\x51nbtlwa"
258+
"etukvgx\\jqxlkq"
259+
"\"tp\"rah\"pg\"s\"bpdtes\\tkasdhqd"
260+
"dn\"qqpkikadowssb\xcah\"dzpsf\\ect\"jdh"
261+
"pxunovbbrrn\\vullyn\"bno\"\"\"myfxlp\""
262+
"qaixyazuryvkmoulhcqaotegfj\\mpzm"
263+
"bvfrbicutzbjwn\\oml\"cf\"d\"ezcpv\"j"
264+
"rmbrdtneudemigdhelmb"
265+
"aq\\aurmbhy"
266+
"wujqvzw"
267+
"gf\"tssmvm\"gm\"hu\x9a\xb7yjawsa"
268+
"hrhqqxow\xe2gsydtdspcfqy\"zw\\ou"
269+
"ianwwf\\yko\\tdujhhqdi"
270+
"xylz\"zpvpab"
271+
"lwuopbeeegp"
272+
"aoop\x49jhhcexdmdtun"
273+
"\\\\mouqqcsgmz"
274+
"tltuvwhveau\x43b\"ymxjlcgiymcynwt"
275+
"gsugerumpyuhtjljbhrdyoj"
276+
"lnjm\xb8wg\"ajh"
277+
"zmspue\"nfttdon\\b\"eww"
278+
"\"w\x67jwaq\x7ernmyvs\\rmdsuwydsd\"th"
279+
"ogtgvtlmcvgllyv"
280+
"z\"fqi\"rvddoehrciyl"
281+
"yustxxtot\"muec\"xvfdbzunzvveq"
282+
"mqslw"
283+
"txqnyvzmibqgjs\xb6xy\x86nfalfyx"
284+
"kzhehlmkholov"
285+
"plpmywcnirrjutjguosh\\"
286+
"pydbnqofv\"dn\\m"
287+
"aegqof"
288+
"eambmxt\\dxagoogl\\zapfwwlmk"
289+
"afbmqitxxqhddlozuxcpjxgh"
290+
"vgts"
291+
"bfdpqtoxzzhmzcilehnflna"
292+
"s\"idpz"
293+
"\xcfhgly\"nlmztwybx\"ecezmsxaqw"
294+
"aackfgndqcqiy"
295+
"\x22unqdlsrvgzfaohoffgxzfpir\"s"
296+
"abh\"ydv\"kbpdhrerl"
297+
"bdzpg"
298+
"ekwgkywtmzp"
299+
"wtoodejqmrrgslhvnk\"pi\"ldnogpth"
300+
"njro\x68qgbx\xe4af\"\\suan"

2015/day08/run.py

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#! /usr/bin/env python3
2+
3+
def load_data(filename):
4+
with open(filename, 'r') as f:
5+
for line in f:
6+
line = line.rstrip('\n')
7+
yield line
8+
9+
# Part One
10+
11+
def dequoted_unescaped(string):
12+
ret = ''
13+
string = string[1:-1]
14+
escaped = None
15+
for i, ch in enumerate(string):
16+
if escaped is not None:
17+
if string[escaped+1] == 'x':
18+
if i == escaped + 3:
19+
ret += chr(int(string[escaped+2:escaped+4], 16))
20+
escaped = None
21+
else:
22+
ret += ch
23+
escaped = None
24+
elif ch == '\\':
25+
escaped = i
26+
else:
27+
ret += ch
28+
return ret
29+
30+
result = sum(len(line) - len(dequoted_unescaped(line)) for line in load_data('input.txt'))
31+
32+
print(result)
33+
34+
# Part Two
35+
36+
def quoted_escaped(string):
37+
ret = ''
38+
for ch in string:
39+
if ch in ('"', '\\'):
40+
ret += '\\' + ch
41+
elif ord(ch) >= 128:
42+
ret += f'\\x{ord(ch):02x}'
43+
else:
44+
ret += ch
45+
return '"' + ret + '"'
46+
47+
result = sum(len(quoted_escaped(line)) - len(line) for line in load_data('input.txt'))
48+
49+
print(result)

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
```
22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
3-
2015 ++ ++ ++ ++ ++ ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
3+
2015 ++ ++ ++ ++ ++ ++ ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +
44
2016 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
55
2017 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
66
2018 ++ ++ ++ ++ ++ ++ ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +

0 commit comments

Comments
 (0)