2015 day 8.
This commit is contained in:
parent
f94e2bd831
commit
3fe9555cb1
@ -2,7 +2,7 @@ import logging
|
|||||||
import operator
|
import operator
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from typing import Callable, Literal, TypeAlias, cast
|
from typing import Callable
|
||||||
|
|
||||||
VERBOSE = os.getenv("AOC_VERBOSE") == "True"
|
VERBOSE = os.getenv("AOC_VERBOSE") == "True"
|
||||||
logging.basicConfig(level=logging.INFO if VERBOSE else logging.WARNING)
|
logging.basicConfig(level=logging.INFO if VERBOSE else logging.WARNING)
|
||||||
|
35
src/holt59/aoc/2015/day8.py
Normal file
35
src/holt59/aoc/2015/day8.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
VERBOSE = os.getenv("AOC_VERBOSE") == "True"
|
||||||
|
logging.basicConfig(level=logging.INFO if VERBOSE else logging.WARNING)
|
||||||
|
|
||||||
|
|
||||||
|
lines = sys.stdin.read().splitlines()
|
||||||
|
|
||||||
|
answer_1 = sum(
|
||||||
|
# left and right quotes (not in memory)
|
||||||
|
2
|
||||||
|
# each \\ adds one character in the literals (compared to memory)
|
||||||
|
+ line.count(R"\\")
|
||||||
|
# each \" adds one character in the literals (compared to memory)
|
||||||
|
+ line[1:-1].count(R"\"")
|
||||||
|
# each \xFF adds 3 characters in the literals (compared to memory), but we must not
|
||||||
|
# count A\\x (A != \), but we must count A\\\x (A != \) - in practice we should also
|
||||||
|
# avoid \\\\x, etc., but this does not occur in the examples and the actual input
|
||||||
|
+ 3 * (line.count(R"\x") - line.count(R"\\x") + line.count(R"\\\x"))
|
||||||
|
for line in lines
|
||||||
|
)
|
||||||
|
print(f"answer 1 is {answer_1}")
|
||||||
|
|
||||||
|
answer_2 = sum(
|
||||||
|
# needs to wrap in quotes (2 characters)
|
||||||
|
2
|
||||||
|
# needs to escape every \ with an extra \
|
||||||
|
+ line.count("\\")
|
||||||
|
# needs to escape every " with an extra \ (including the first and last ones)
|
||||||
|
+ line.count('"')
|
||||||
|
for line in lines
|
||||||
|
)
|
||||||
|
print(f"answer 2 is {answer_2}")
|
300
src/holt59/aoc/inputs/holt59/2015/day8.txt
Normal file
300
src/holt59/aoc/inputs/holt59/2015/day8.txt
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
"azlgxdbljwygyttzkfwuxv"
|
||||||
|
"v\xfb\"lgs\"kvjfywmut\x9cr"
|
||||||
|
"merxdhj"
|
||||||
|
"dwz"
|
||||||
|
"d\\gkbqo\\fwukyxab\"u"
|
||||||
|
"k\xd4cfixejvkicryipucwurq\x7eq"
|
||||||
|
"nvtidemacj\"hppfopvpr"
|
||||||
|
"kbngyfvvsdismznhar\\p\"\"gpryt\"jaeh"
|
||||||
|
"khre\"o\x0elqfrbktzn"
|
||||||
|
"nugkdmqwdq\x50amallrskmrxoyo"
|
||||||
|
"jcrkptrsasjp\\\"cwigzynjgspxxv\\vyb"
|
||||||
|
"ramf\"skhcmenhbpujbqwkltmplxygfcy"
|
||||||
|
"aqjqgbfqaxga\\fkdcahlfi\"pvods"
|
||||||
|
"pcrtfb"
|
||||||
|
"\x83qg\"nwgugfmfpzlrvty\"ryoxm"
|
||||||
|
"fvhvvokdnl\\eap"
|
||||||
|
"kugdkrat"
|
||||||
|
"seuxwc"
|
||||||
|
"vhioftcosshaqtnz"
|
||||||
|
"gzkxqrdq\\uko\"mrtst"
|
||||||
|
"znjcomvy\x16hhsenmroswr"
|
||||||
|
"clowmtra"
|
||||||
|
"\xc4"
|
||||||
|
"jpavsevmziklydtqqm"
|
||||||
|
"egxjqytcttr\\ecfedmmovkyn\"m"
|
||||||
|
"mjulrvqgmsvmwf"
|
||||||
|
"o\\prxtlfbatxerhev\xf9hcl\x44rzmvklviv"
|
||||||
|
"lregjexqaqgwloydxdsc\\o\"dnjfmjcu"
|
||||||
|
"lnxluajtk\x8desue\\k\x7abhwokfhh"
|
||||||
|
"wrssfvzzn\"llrysjgiu\"npjtdli"
|
||||||
|
"\x67lwkks"
|
||||||
|
"bifw\"ybvmwiyi\"vhol\"vol\xd4"
|
||||||
|
"aywdqhvtvcpvbewtwuyxrix"
|
||||||
|
"gc\xd3\"caukdgfdywj"
|
||||||
|
"uczy\\fk"
|
||||||
|
"bnlxkjvl\x7docehufkj\\\"qoyhag"
|
||||||
|
"bidsptalmoicyorbv\\"
|
||||||
|
"jorscv\"mufcvvfmcv\"ga"
|
||||||
|
"sofpwfal\\a"
|
||||||
|
"kcuqtbboaly\"uj\"k"
|
||||||
|
"n\\c"
|
||||||
|
"x\"\xcaj\\xwwvpdldz"
|
||||||
|
"eyukphh"
|
||||||
|
"wcyjq"
|
||||||
|
"vjx\"\"hjroj\"l\x4cjwbr"
|
||||||
|
"xcodsxzfqw\\rowqtuwvjnxupjnrh"
|
||||||
|
"yc"
|
||||||
|
"fpvzldgbdtca\"hqwa"
|
||||||
|
"ymjq\x8ahohvafubra\"hgqoknkuyph"
|
||||||
|
"kx\\mkaaklvcup"
|
||||||
|
"belddrzegcsxsyfhzyz"
|
||||||
|
"fuyswi"
|
||||||
|
"\\hubzebo\"ha\\qyr\"dv\\"
|
||||||
|
"mxvlz\"fwuvx\"cyk\""
|
||||||
|
"ftbh\"ro\\tmcpnpvh\"xx"
|
||||||
|
"ygi"
|
||||||
|
"rw\"\"wwn\\fgbjumq\"vgvoh\xd0\"mm"
|
||||||
|
"\"pat\"\x63kpfc\"\x2ckhfvxk\"uwqzlx"
|
||||||
|
"o"
|
||||||
|
"d\"hqtsfp\xceaswe\"\xc0lw"
|
||||||
|
"zajpvfawqntvoveal\"\"trcdarjua"
|
||||||
|
"xzapq"
|
||||||
|
"rkmhm"
|
||||||
|
"byuq"
|
||||||
|
"rwwmt\xe8jg\xc2\"omt"
|
||||||
|
"nfljgdmgefvlh\"x"
|
||||||
|
"rpjxcexisualz"
|
||||||
|
"doxcycmgaiptvd"
|
||||||
|
"rq\\\"mohnjdf\\xv\\hrnosdtmvxot"
|
||||||
|
"oqvbcenib\"uhy\\npjxg"
|
||||||
|
"pkvgnm\\ruayuvpbpd"
|
||||||
|
"kknmzpxqfbcdgng"
|
||||||
|
"piduhbmaympxdexz"
|
||||||
|
"vapczawekhoa\\or"
|
||||||
|
"tlwn\"avc\"bycg\"\"xuxea"
|
||||||
|
"\xcdvryveteqzxrgopmdmihkcgsuozips"
|
||||||
|
"kpzziqt"
|
||||||
|
"sdy\\s\"cjq"
|
||||||
|
"yujs"
|
||||||
|
"qte\"q"
|
||||||
|
"qyvpnkhjcqjv\"cclvv\"pclgtg\xeak\"tno"
|
||||||
|
"xwx"
|
||||||
|
"vibuvv"
|
||||||
|
"qq\""
|
||||||
|
"wwjduomtbkbdtorhpyalxswisq\"r"
|
||||||
|
"afuw\\mfjzctcivwesutxbk\"lk"
|
||||||
|
"e\xcef\\hkiu"
|
||||||
|
"ftdrgzvygcw\"jwsrcmgxj"
|
||||||
|
"zrddqfkx\x21dr\"ju\"elybk\"powj\"\"kpryz"
|
||||||
|
"dttdkfvbodkma\""
|
||||||
|
"lzygktugpqw"
|
||||||
|
"qu\x83tes\\u\"tnid\"ryuz"
|
||||||
|
"\\o\"pe\\vqwlsizjklwrjofg\xe2oau\\rd"
|
||||||
|
"mikevjzhnwgx\"fozrj\"h\""
|
||||||
|
"ligxmxznzvtachvvbahnff"
|
||||||
|
"d\\kq"
|
||||||
|
"tnbkxpzmcakqhaa"
|
||||||
|
"g\\yeakebeyv"
|
||||||
|
"cqkcnd\"sxjxfnawy\x31zax\x6ceha"
|
||||||
|
"m\x0dtqotffzdnetujtsgjqgwddc"
|
||||||
|
"masnugb\"etgmxul\x3bqd\\tmtddnvcy"
|
||||||
|
"floediikodfgre\x23wyoxlswxflwecdjpt"
|
||||||
|
"zu"
|
||||||
|
"r"
|
||||||
|
"\"ashzdbd\"pdvba\xeeumkr\\amnj"
|
||||||
|
"ckslmuwbtfouwpfwtuiqmeozgspwnhx"
|
||||||
|
"t\\qjsjek\xf9gjcxsyco\"r"
|
||||||
|
"hoed\x1b\\tcmaqch\"epdy"
|
||||||
|
"mgjiojwzc\\ypqcn\xb1njmp\"aeeblxt"
|
||||||
|
"\xdf\"h\x5enfracj"
|
||||||
|
"\x6fpbpocrb"
|
||||||
|
"jbmhrswyyq\\"
|
||||||
|
"wtyqtenfwatji\"ls\\"
|
||||||
|
"voy"
|
||||||
|
"awj"
|
||||||
|
"rtbj\"j"
|
||||||
|
"hynl"
|
||||||
|
"orqqeuaat\\xu\\havsgr\xc5qdk"
|
||||||
|
"g\"npyzjfq\"rjefwsk"
|
||||||
|
"rk\\kkcirjbixr\\zelndx\"bsnqvqj\""
|
||||||
|
"tecoz"
|
||||||
|
"dn\"uswngbdk\""
|
||||||
|
"qb\\"
|
||||||
|
"wpyis\\ebq"
|
||||||
|
"ppwue\\airoxzjjdqbvyurhaabetv"
|
||||||
|
"fxlvt"
|
||||||
|
"ql\"oqsmsvpxcg\"k"
|
||||||
|
"vqlhuec\\adw"
|
||||||
|
"qzmi\xffberakqqkk"
|
||||||
|
"tisjqff\"wf"
|
||||||
|
"yhnpudoaybwucvppj"
|
||||||
|
"xhfuf\\ehsrhsnfxcwtibd\"ubfpz"
|
||||||
|
"ihgjquzhf\""
|
||||||
|
"ff\x66dsupesrnusrtqnywoqcn\\"
|
||||||
|
"z\x77zpubbjmd"
|
||||||
|
"\"vhzlbwq\"xeimjt\\xe\x85umho\"m\"\"bmy"
|
||||||
|
"mmuvkioocmzjjysi\"mkfbec\""
|
||||||
|
"rpgghowbduw\x2fayslubajinoik\xd0hcfy"
|
||||||
|
"xrkyjqul\xdexlojgdphczp\"jfk"
|
||||||
|
"mg\x07cnr\x8b\x67xdgszmgiktpjhawho"
|
||||||
|
"kdgufhaoab"
|
||||||
|
"rlhela\"nldr"
|
||||||
|
"wzye\x87u"
|
||||||
|
"yif\x75bjhnitgoarmfgqwpmopu"
|
||||||
|
"pvlbyez\"wyy\x3dpgr"
|
||||||
|
"ezdm\"ovkruthkvdwtqwr\"ibdoawzgu"
|
||||||
|
"qubp"
|
||||||
|
"b\\kcpegcn\\zgdemgorjnk"
|
||||||
|
"gjsva\\kzaor\"\"gtpd"
|
||||||
|
"\"kt"
|
||||||
|
"rlymwlcodix"
|
||||||
|
"qqtmswowxca\"jvv"
|
||||||
|
"jni\xebwhozb"
|
||||||
|
"zhino\"kzjtmgxpi\"zzexijg"
|
||||||
|
"tyrbat\\mejgzplufxixkyg"
|
||||||
|
"lhmopxiao\x09\"p\xebl"
|
||||||
|
"xefioorxvate"
|
||||||
|
"nmcgd\x46xfujt\"w"
|
||||||
|
"\xe3wnwpat\"gtimrb"
|
||||||
|
"wpq\"xkjuw\xebbohgcagppb"
|
||||||
|
"fmvpwaca"
|
||||||
|
"mlsw"
|
||||||
|
"fdan\\\x9e"
|
||||||
|
"\"f\"fmdlzc"
|
||||||
|
"nyuj\\jnnfzdnrqmhvjrahlvzl"
|
||||||
|
"zn\"f\xcfsshcdaukkimfwk"
|
||||||
|
"uayugezzo\\\"e\"blnrgjaupqhik"
|
||||||
|
"efd\"apkndelkuvfvwyyatyttkehc"
|
||||||
|
"ufxq\\\"m\"bwkh\x93kapbqrvxxzbzp\\"
|
||||||
|
"fgypsbgjak\x79qblbeidavqtddfacq\\i\"h"
|
||||||
|
"kcfgpiysdxlgejjvgndb\\dovfpqodw"
|
||||||
|
"\"onpqnssmighipuqgwx\"nrokzgvg"
|
||||||
|
"vhjrrhfrba\"jebdanzsrdusut\\wbs"
|
||||||
|
"o\xdakymbaxakys"
|
||||||
|
"uwxhhzz\\mtmhghjn\\\\tnhzbejj"
|
||||||
|
"yd\\"
|
||||||
|
"bpgztp\\lzwpdqju\"it\x35qjhihjv"
|
||||||
|
"\\my\\b\"klnnto\\\xb3mbtsh"
|
||||||
|
"ezyvknv\"l\x2bdhhfjcvwzhjgmhwbqd\"\\"
|
||||||
|
"ftkz\"amoncbsohtaumhl\"wsodemopodq"
|
||||||
|
"ifv"
|
||||||
|
"dmzfxvzq"
|
||||||
|
"sped\"bvmf\"mmevl\"zydannpfny"
|
||||||
|
"fjxcjwlv\"pnqyrzatsjwsqfidb"
|
||||||
|
"muc\xfdqouwwnmuixru\\zlhjintplvtee"
|
||||||
|
"mraqgvmj"
|
||||||
|
"njopq\"ftcsryo"
|
||||||
|
"enoh\"n"
|
||||||
|
"t\"ntjhjc\"nzqh\xf7dcohhlsja\x7dtr"
|
||||||
|
"flbqcmcoun"
|
||||||
|
"dxkiysrn\\dyuqoaig"
|
||||||
|
"nehkzi\"h\"syktzfufotng\xdafqo"
|
||||||
|
"dzkjg\\hqjk\\\"zfegssjhn"
|
||||||
|
"sadlsjv"
|
||||||
|
"vmfnrdb\""
|
||||||
|
"ac\\bdp\"n"
|
||||||
|
"qt\x89h"
|
||||||
|
"lsndeugwvijwde\\vjapbm\\k\\nljuva"
|
||||||
|
"twpmltdzyynqt\\z\\tnund\x64hm"
|
||||||
|
"hpcyata\"ocylbkzdnhujh"
|
||||||
|
"hskzq\"knntuhscex\"q\\y\\vqj\x3an"
|
||||||
|
"eekwyufvji\\mqgeroekxeyrmymq"
|
||||||
|
"hl\"durthetvri\xebw\\jxu\"rcmiuy"
|
||||||
|
"\"fxdnmvnftxwesmvvq\"sjnf\xaabpg\"iary"
|
||||||
|
"\"\"nksqso"
|
||||||
|
"ruq\xbezugge\"d\"hwvoxmy\"iawikddxn\"x"
|
||||||
|
"rxxnlfay"
|
||||||
|
"stcu\"mv\xabcqts\\fasff"
|
||||||
|
"yrnvwfkfuzuoysfdzl\x02bk"
|
||||||
|
"qbdsmlwdbfknivtwijbwtatqfe"
|
||||||
|
"\"erqh\\csjph"
|
||||||
|
"ikfv"
|
||||||
|
"\xd2cuhowmtsxepzsivsvnvsb"
|
||||||
|
"vj"
|
||||||
|
"d"
|
||||||
|
"\\g"
|
||||||
|
"porvg\x62qghorthnc\"\\"
|
||||||
|
"tiks\\kr\"\x0fuejvuxzswnwdjscrk"
|
||||||
|
"xmgfel\"atma\\zaxmlgfjx\"ajmqf"
|
||||||
|
"oz\\rnxwljc\\\"umhymtwh"
|
||||||
|
"wlsxxhm\x7fqx\\gjoyrvccfiner\\qloluqv"
|
||||||
|
"k\\ieq"
|
||||||
|
"xidjj\"ksnlgnwxlddf\\s\\kuuleb"
|
||||||
|
"wjpnzgprzv\\maub\x0cj"
|
||||||
|
"r"
|
||||||
|
"y"
|
||||||
|
"\"yecqiei\"ire\\jdhlnnlde\xc5u"
|
||||||
|
"drvdiycqib"
|
||||||
|
"egnrbefezcrhgldrtb"
|
||||||
|
"plqodxv\\zm\"uodwjdocri\x55ucaezutm"
|
||||||
|
"f\"wexcw\x02ekewx\"alyzn"
|
||||||
|
"pqajwuk\\\\oatkfqdyspnrupo"
|
||||||
|
"rkczj\"fzntabpnygrhamk\\km\x68xfkmr"
|
||||||
|
"wejam\xbac\x37kns"
|
||||||
|
"qqmlwjk\"gh"
|
||||||
|
"fdcjsxlgx"
|
||||||
|
"\\cxvxy\"kb\"\"unubvrsq\\y\\awfhbmarj\\"
|
||||||
|
"geunceaqr"
|
||||||
|
"tpkg\"svvngk\\sizlsyaqwf"
|
||||||
|
"\"pa\\x\x18od\\emgje\\"
|
||||||
|
"ffiizogjjptubzqfuh\"cctieqcdh"
|
||||||
|
"yikhiyyrpgglpos"
|
||||||
|
"h\\"
|
||||||
|
"jotqojodcv"
|
||||||
|
"ervsz\x87ade\"fevq\\tcqowt"
|
||||||
|
"\\y\"fgrxtppkcseeg\\onxjarx\\hyhfn\x5fi"
|
||||||
|
"kxndlabn\\wwumctuzdcfiitrbnn"
|
||||||
|
"eoosynwhwm"
|
||||||
|
"\"c\x04"
|
||||||
|
"ny\xf6vuwlec"
|
||||||
|
"ubgxxcvnltzaucrzg\\xcez"
|
||||||
|
"pnocjvo\\yt"
|
||||||
|
"fcabrtqog\"a\"zj"
|
||||||
|
"o\\bha\\mzxmrfltnflv\xea"
|
||||||
|
"tbfvzwhexsdxjmxejwqqngzixcx"
|
||||||
|
"wdptrakok\"rgymturdmwfiwu"
|
||||||
|
"reffmj"
|
||||||
|
"lqm"
|
||||||
|
"\\oc"
|
||||||
|
"p\""
|
||||||
|
"ygkdnhcuehlx"
|
||||||
|
"vsqmv\"bqay\"olimtkewedzm"
|
||||||
|
"isos\x6azbnkojhxoopzetbj\xe1yd"
|
||||||
|
"yo\\pgayjcyhshztnbdv"
|
||||||
|
"fg\"h"
|
||||||
|
"vcmcojolfcf\\\\oxveua"
|
||||||
|
"w\"vyszhbrr\"jpeddpnrjlca\x69bdbopd\\z"
|
||||||
|
"jikeqv"
|
||||||
|
"\"dkjdfrtj"
|
||||||
|
"is"
|
||||||
|
"hgzx"
|
||||||
|
"z\""
|
||||||
|
"woubquq\\ag\""
|
||||||
|
"xvclriqa\xe6ltt"
|
||||||
|
"tfxinifmd"
|
||||||
|
"mvywzf\"jz"
|
||||||
|
"vlle"
|
||||||
|
"c\"rf\"wynhye\x25vccvb\""
|
||||||
|
"zvuxm"
|
||||||
|
"\xf2\"jdstiwqer\"h"
|
||||||
|
"kyogyogcknbzv\x9f\\\\e"
|
||||||
|
"kspodj\"edpeqgypc"
|
||||||
|
"oh\\x\\h"
|
||||||
|
"julb"
|
||||||
|
"bmcfkidxyilgoy\\xmu\"ig\\qg"
|
||||||
|
"veqww\"ea"
|
||||||
|
"fkdbemtgtkpqisrwlxutllxc\"mbelhs"
|
||||||
|
"e"
|
||||||
|
"ecn\x50ooprbstnq"
|
||||||
|
"\"\xe8\"ec\xeah\"qo\\g\"iuqxy\"e\"y\xe7xk\xc6d"
|
||||||
|
"lwj\"aftrcqj"
|
||||||
|
"jduij\x97zk\"rftjrixzgscxxllpqx\"bwwb"
|
||||||
|
"fqcditz"
|
||||||
|
"f\x19azclj\"rsvaokgvty\"aeq"
|
||||||
|
"erse\x9etmzhlmhy\x67yftoti"
|
||||||
|
"lsdw\xb3dmiy\\od"
|
||||||
|
"x\x6fxbljsjdgd\xaau"
|
||||||
|
"hjg\\w\"\x78uoqbsdikbjxpip\"w\"jnhzec"
|
||||||
|
"gk"
|
||||||
|
"\\zrs\\syur"
|
4
src/holt59/aoc/inputs/tests/2015/day8.txt
Normal file
4
src/holt59/aoc/inputs/tests/2015/day8.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
""
|
||||||
|
"abc"
|
||||||
|
"aaa\"aaa"
|
||||||
|
"\x27"
|
Loading…
Reference in New Issue
Block a user