diff --git a/06/06.py b/06/06.py new file mode 100644 index 0000000..7f99287 --- /dev/null +++ b/06/06.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +file = "./input.txt" +#file = "./ex.txt" +from time import time +start_time = time() + +def read_file(filename:str)->list[str]: + result = [] + input_file = open(filename, "r") + for line in input_file: + line = line.strip() + if line == "": + continue + else: + result.append(line) + input_file.close() + return result + +def counter_dicts(da:list[str])->list[dict[str:int]]: + result = [{} for _ in range(len(da[0]))] + for d in da: + for i,b in enumerate(d): + if b in result[i]: + result[i][b] += 1 + else: + result[i][b] = 1 + return result + +if __name__ == "__main__": + data = read_file(file) + dicts = counter_dicts(data) + + sol = "" + for dic in dicts: + sol += max(dic, key=dic.get) + print(f"Solution Part1: {sol}") + + sol = "" + for dic in dicts: + sol += min(dic, key=dic.get) + print(f"Solution Part2: {sol}") + + print(f'Runtime: {time()-start_time:.4f} s') \ No newline at end of file diff --git a/06/ex.txt b/06/ex.txt new file mode 100644 index 0000000..32ba518 --- /dev/null +++ b/06/ex.txt @@ -0,0 +1,16 @@ +eedadn +drvtee +eandsr +raavrd +atevrs +tsrnev +sdttsa +rasrtv +nssdts +ntnada +svetve +tesnvt +vntsnd +vrdear +dvrsen +enarar diff --git a/06/input.txt b/06/input.txt new file mode 100644 index 0000000..b3bc18e --- /dev/null +++ b/06/input.txt @@ -0,0 +1,598 @@ +kzuhjtiu +avmoymrl +ooiuzmse +thjosnvt +rgukkzvw +ngiumlei +ypecygjb +vkypflkc +ycfematk +fuziupzq +wencklrw +bfrjzflc +fikjplet +xamkbgpl +ssvvomhl +zixludnr +gvwceyxu +ycazlsiu +crppmvek +bkhbmzig +hlvjgybm +bebrkdug +aqwriopt +vfmxjthr +qcfumqoo +cnslcxkj +whjoqatd +zppyyrid +anoxsmnm +usgkdorj +zauqzrih +rkjoqwxp +uorcdgrx +sarynvbe +qbxjymvo +ilykopgt +lkfbcacj +iwbbrpqg +hbutgqgf +yuyhccsb +tfshukcj +svrzcnhe +rufpdkgr +jlacxosa +jojaebdy +ljhlucod +vfmtlrkg +hmgvlsmi +xrbtfncl +dczahpsj +gehbzbjx +akfnfpdb +cxlajgqi +johxtvtl +kuknyycu +doocnijs +uulmayiz +ehkwoiym +etcwlwkr +fzsrlvlp +wedhgevn +pvzlmuak +nqwesqnb +tfysfqlg +wftvhlph +ijytsxvl +gpcusnok +jkxmmzqu +weuycmyh +ylokounh +xgcwhkzs +gwaxfnym +ebtommlo +zovodvxt +vulmffvv +utyvwzoj +yxcqylld +npgopbjr +fsgubdod +kqxxmlqx +qpufmuiz +dwcxikwh +yhfxever +tdqsorgn +fujusvbk +skeilnco +vnjamqwk +ocsdrafb +mpbhvhsj +vwkddrov +zslzzpqa +owoduiko +lcbadwmb +flenfdlh +pxstzvlg +amzxqzgl +jmrzrhpp +npstyeoc +btdkzgpq +npvgdqsd +fsqyzsjc +ckamszqr +pxdunhzr +natfwmmr +arcrqdyh +hjtledhq +rzlwgkdb +vjstsayt +spqfwtod +zjdrabmi +lbgtzkqn +yylrtkhp +lmnfnlyj +unnsbhwu +tbgvrwmk +wmqvphio +dxtqdzjc +ssmxelji +lpchojhs +qztfidhh +ascwwupj +qtpjutih +wxblizca +kyrxrill +raauetcl +kffpczyp +fpzfrmmz +hndftzck +doshupyz +ppnvdzov +oixcfhfe +womdqhbu +jfjzhxmj +sdxspwgn +pacctjrd +rbvkuipa +oqqdoqpm +tipjsyaq +fkhwgypp +ruifxbrx +akmgpyna +jgtxlsfj +ngwgobvo +ohgcnppm +kxfpgxdp +jfsymwtz +laakiasf +yqmllafa +wtjkdxml +nnekcevz +btpqbgtq +ejwgghky +vwomilgh +fbjlnzvu +jroswmwf +uoiqnszt +yselwyvf +naipzpmq +nqfffbnb +xanbgyft +sabhdofz +ivsvzuxw +ahtfcijd +svnufhlf +kbesriek +qggmmxud +yyklynwn +iochuteq +uuqymfzn +pqvdqgiv +lxkidikd +weyoaozn +czcbnqqf +mqxdzdud +xaoaepob +zqtjatvx +ybvguzoq +cfnkpata +owfsfdax +izgealat +ymipkwwg +wnpgxesg +ksnxxcxv +jclzowfv +duaywclu +milgzzoc +nkbzvfzb +phceixso +dxhruaie +xzgdvjwp +hziqyirx +dqkrmifd +oxkvbscb +xgiqvuhq +iswmjvwn +zmgutgrc +qwtjnngf +irscjfpf +fjattgtx +hbbzaskc +ajjxonyb +hjqrwipy +jhmvjbjc +lmycsels +fgrmkjrr +lcgtjzso +drdbanrd +bfcmpaec +xyuospwo +ondpxivu +awwbvugg +lynqeyze +klrbkdsn +plvsebhe +zgvtzzfj +ntxufsug +lgnagfrt +zrfqcoyn +bbnaxotu +xdfnrige +relscolz +gvtaimxx +tzqmtqqg +xvlpdjqo +kwaiixca +zrrthkka +ilwodhkk +lmkvhtns +gksnzcxy +slydcwel +gvazmrnn +jxwjredl +mfdoyzvb +zsjaqqpw +xdnehbns +mdwvtvpg +qchdoolo +qqueggbo +kvejknhn +zvmuawry +wdaphdrp +uqvqwrat +seocgxcy +cmfaltkm +eizjyuny +wauyrtjd +msofphvf +ehhrinzp +rvdxceti +ucqojfkj +vyogwxca +lpzwlvsj +eipwrkaw +hrvssisz +tjweqwuf +jxpsghum +ndklxswg +epqhtexo +lxarhhrc +bvvnfkpp +nqtubzmf +bvywjvhy +vwxcdurw +qchvcsdp +ssddxsqo +tvmnzeih +eriekhkj +tdagxotn +fhmptjgy +gmgumxfy +kxroxyjy +tzzwhgwd +bpxlgtxh +rhqckdhe +mhrfducn +upehhwcw +hiuitciw +wmqikhks +pfkfcfon +ibayinjf +gyonamns +piidubgm +jwjnkntm +qtpejlga +tdxjzfzs +zrnjnhsr +mderxneh +ykrdpkjv +tutgjuyo +imfgylmw +uleeqvqq +dmqrxewd +kutklati +qhloprfw +vyjsvkby +ktpypjhg +krtqsqdv +kestthkm +mmyelvby +uicxbnzo +fbeeqhtd +qyljilqs +vzvaisds +glltfgez +hslaurzq +pvmpndhx +qjpcsdzn +enusitnz +przexagp +gqsjtshx +tojpvqxm +ajrzrmav +dpygasci +ekkipsxn +ivagdrag +uusiocdp +zupdvkmm +hzykfaow +anezxfnr +cezhheci +rohplzjx +mhjpnggj +biqpkggx +tjqovfui +virjhgku +oiqigxxa +oczvaubi +grlyfisi +dnreeqls +awtmxyfu +ekwwiqfy +fvpquajn +nhfrrduu +gckaequp +vcnotbng +rlmqudai +sjbtzptp +fssetlef +juvqmozk +egwihfmb +aycbtxwg +eeinewpe +qnrljmel +ojtwijbq +ojglpxvg +okmssqmz +biwmbclg +qbcyoeyv +ibzljibu +irivznmc +joghyeuq +lehhevzk +nypdsavy +ltwgxozd +dhdcvekn +etukwfrh +mecdcgfk +pxeffoie +repfaunk +cggbikui +mlkiikwe +yogupckh +prslodhm +snwifrez +ezbdhyze +lyujcknw +xpbubsbs +pupazben +mhbefbwr +covtcxuv +pdivxcpc +efljebov +slpzlykk +mgdzhdxi +pswxumzl +fsktpndt +bcsbqqpr +jrcsbpmt +znjzuwfj +vvyebpwr +irtkvuxf +bjmirtex +ctwpohcp +mzhfgwup +yifbbawo +ysmkcxwr +hdilqqam +sdzxfoua +znipjpov +bbensgdz +xxbwnavx +nsecnplc +cynmewjl +xenyeshm +iijnxxoe +udheymlr +iflbvrgj +jmwwssvk +bxmwksdk +mcjnzulf +hdztyosx +oacnhrti +lgkzroxw +hgrhloyh +ljwchrcg +snoivbyo +zifbvzuy +zdiyklta +zlxrbtko +itognojc +uukpavnr +gfeqbwpr +cqediytq +qshrmmab +swfvqevt +eeinnjhh +fyiwkxaf +wbiompul +qdyljrqw +hbyybefc +debxacnw +jtcndbre +wnonjsms +mynferiq +bsdheygu +ctxpqjtv +zwogocti +ithytgny +hcfzukoy +vkbbayvw +oratkqbl +paaxdtzq +ihbyepsm +pcrbpjah +rdywnvjf +bwqwjeau +yzvaytxs +tzobtjlx +nmpuehdt +cozmwviz +jjsgugpg +hfnufbfy +mimsvfup +uckxsvmt +niuvdfga +rzqnhtzg +swcovahs +rpaiolqw +gkzirknt +tmenbuze +wlswxcui +ajrzbngd +qnagqzbk +keissvdu +xgzauudn +ucxqjyxw +mjhebxew +hfcsihjz +haowlpht +awtyuxes +yvlscnor +wjvnrvdk +vyjrofzl +mwvqhdsr +tmjtvmcm +txedbgbl +bdbyvjka +gflogcxf +yutkwtwb +ufowkutk +poztefiy +vzokwdbd +lswgkqbw +uqdgisvs +oucvypnf +ltkglpkw +zmxepsdq +qkeinhjv +dbrbejia +ibvmmlvw +cqbyopme +cofowdbs +fqxadbdc +dhrhqbwl +yzgzxtay +kafatfsb +ctoanqfw +voxqoccb +bkayknan +vcbznmxv +xammavqx +mnddrwih +ctclwzqm +kfopcomi +fktmgwnc +gmobfjct +unfxsjaz +vjddnxel +gmucjbsa +hpgmwwpz +euuksjop +agtvtiur +rqvzvlfj +wrsibitj +nlsjycsm +tzwjqbbe +ikgtqyla +tyooafyq +kulhqrqh +aymwwiji +olazvgmc +qlbfpnuk +siduwyou +onbdacup +zhucqobq +gfynsukb +ewglgrmv +teulwkoc +wdarqsos +rodfyiau +ugscrfwx +cskdtjeb +rhpbewaf +kvuhnfxi +ulubdyna +ybjqaiek +cygmgqco +wmxejcqi +bnxazupy +veikhwro +ehqjweal +pmhgadgt +ddpiqeyz +xiiulgvs +rdlsfjxv +xgeilzdv +noxpwtet +rwkijawj +gieqojll +jxyfkcav +ftvrbjmx +wxhscubc +xqzsvalt +oaipwrzg +qoyvpjho +sxhrytfm +tqxbayiz +phyrkram +crxfrhlq +xaqilmia +uxdjurrv +reukythc +ndufcmiq +fikuxiut +kpzmbejp +bfhrmkdm +oujmakta +gcactdth +unzgcgxu +goyaykrx +qanwpyrx +eyvmucmw +dvufvfyy +xznzpoge +kemercpf +hthqpefq +dthqykev +jyzcxlee +pxpslaiv +owtkzmqp +wlpiplgi +agzqkpyc +lpnuiohf +dgdnredu +sgykrusb +eldlktfn +opqvzjjx +daqvvwyj +mtjjdrbu +hbdxoaqz +xrlztquk +vckagcra +cglegsbs +buvhlfxh +xbgmxrqb +gkmyqxde +iapyhadd +aqetglaq +jynnbewj +nzhhoxyd +dlrhmmyb +aarvjibz +fywlhvyr +mebhglss +svdxjorh +yzxunnce +arnolbyf +dqfriuqe