diff --git a/day2/input.txt b/day2/input.txt new file mode 100644 index 0000000..0dc29cd --- /dev/null +++ b/day2/input.txt @@ -0,0 +1,250 @@ +crruafyzloguvxwctqmphenbkd +srcjafyzlcguvrwctqmphenbkd +srijafyzlogbpxwctgmphenbkd +zrijafyzloguvxrctqmphendkd +srijabyzloguvowcqqmphenbkd +srijafyzsoguvxwctbmpienbkd +srirtfyzlognvxwctqmphenbkd +srijafyzloguvxwctgmphenbmq +senjafyzloguvxectqmphenbkd +srijafyeloguvxwwtqmphembkd +srijafyzlogurxtctqmpkenbkd +srijafyzlkguvxictqhphenbkd +srijafgzlogunxwctqophenbkd +shijabyzloguvxwctqmqhenbkd +srjoafyzloguvxwctqmphenbwd +srijafyhloguvxwmtqmphenkkd +srijadyzlogwvxwctqmphenbed +brijafyzloguvmwctqmphenhkd +smijafyzlhguvxwctqmphjnbkd +sriqafvzloguvxwctqmpheebkd +srijafyzloguvxwisqmpuenbkd +mrijakyuloguvxwctqmphenbkd +srnfafyzloguvxwctqmphgnbkd +srijadyzloguvxwhfqmphenbkd +srijafhzloguvxwctdmlhenbkd +srijafyzloguvxwcsqmphykbkd +srijafyzlogwvxwatqmphhnbkd +srijafyzlozqvxwctqmphenbku +srijafyzloguvxwcbamphenbgd +srijafyzlfguvxwctqmphzybkd +srijafyzloguqxwetqmphenkkd +srijafyylogubxwttqmphenbkd +srijafyzloguvxzctadphenbkd +srijafyzloguoxwhtqmchenbkd +srijafyzloguvxwcvqmzhenbko +srijnfyzloguvxwctqmchenjkd +srijaryzloggvxwctqzphenbkd +srijafhzleguvxwcxqmphenbkd +ssijafyzllguvxfctqmphenbkd +srijafyzloguvxdctqmfhenbcd +srijafyzloguvxfctqmplynbkd +srijaftzlogavxwcrqmphenbkd +sriwaoyzloguvxwctqmphenbtd +srijahyzlogunxwctqmphenbvd +srjjafyzloguzxwctumphenbkd +nrijafyzlxguvxwctqmphanbkd +srijafezlqguyxwctqmphenbkd +srijafygloguvxwjtqcphenbkd +erijafyzloguvxoctqmnhenbkd +ssijafyzllguvxwbtqmphenbkd +sriaafyzloguvxwctqqphenbkv +frijafyzloguvswctwmphenbkd +srijafyzyogkvxwctqmprenbkd +syijafyzuoguvxwctqmkhenbkd +srijafyzloganxwctqmphenbkf +srijafyzloguvxwftqmxhenbkq +srijafyflogxvxwctqmghenbkd +srijafyzsoguvxwctqmpjenwkd +srujafylloguvxwctqmphenckd +srijafyzlpzuvxwctqmphenbud +srijafyzlogfvxwctqmhhenbwd +srijafjzlogusxwctqmphepbkd +srijlfyzloguvxwctqfphenzkd +srijafyzlogwvxwctqyphenbqd +srijafyzloluvxwctqtphenukd +srizafyzlowuvxwctqmphqnbkd +sritafkzlkguvxwctqmphenbkd +sbijafdzloguvxgctqmphenbkd +crijafyeloguvxwctqmpsenbkd +srijafyvlogulxwctqmphenbkk +srijafyologuvxwctqmehegbkd +siijafyzloguvxwctjmphenbmd +srijafyzlupuvxwctqmpheabkd +srijafyzlogumxwctqqphanbkd +srijxfyzlogujxwcqqmphenbkd +irijafizeoguvxwctqmphenbkd +sgijafyzloguvtwctqmpfenbkd +srijzfyzloguvmwctnmphenbkd +srijafyzwohuvxwctqmthenbkd +srijafyzlhguvxoctqwphenbkd +srgjafyplogxvxwctqmphenbkd +srijafyqlogovxwctqzphenbkd +srijafjzloguvlnvtqmphenbkd +srijafyzooguvxwctqmphenvud +srijafyzgoguvxwctumphgnbkd +srijaffzloguvxwdqqmphenbkd +srijafyzlogugxwctqxphenbkr +srijafyzlogutxwctqmmcenbkd +srifafyzlhguwxwctqmphenbkd +mrimajyzloguvxwctqmphenbkd +sriyafyzloguvxwcthmphejbkd +srieakyzlokuvxwctqmphenbkd +srisafyzloguhxwctqmphecbkd +srijanyzloguvxcctqmxhenbkd +srijafyzypguvxwctqmqhenbkd +sryjtfyzlvguvxwctqmphenbkd +srijafyzlsguvxwctqmqfenbkd +srijafyzlogudxwbtqwphenbkd +srijysyzloguvxwctqmpvenbkd +srijafyzloggvxwjtqmphegbkd +srijgfyzloguvxwctqmbhdnbkd +ssijufyzloguvawctqmphenbkd +skojafyzloguvxwctqmphenbnd +srijafylloguvxwcqqmpienbkd +trioafyzloguvqwctqmphenbkd +srijafydloguvxwctqmpzjnbkd +saijafvzloguvxwcqqmphenbkd +srhjapyzloguvxwctqmbhenbkd +srijafyzlfguvxwcsqmpwenbkd +shijafyzboguvxwctqmphenbmd +srizafysloguvxwrtqmphenbkd +srijafyzloguvxwciqmwhenbkj +qrijafyzloduvxwctqmphenbko +srijefyuloguvxwctqmphenbed +srijafyzlobuvxwctqmphenhbd +srijafyzloxuvxwctqmpheabkq +srijafyzloguvrwctqmghenkkd +sfisafywloguvxwctqmphenbkd +srgjafyzlogurxwctqmphenbkp +srijafhzloguvxwcjqmphenhkd +srijafyylogufxwrtqmphenbkd +srijafyzvoguvxwzkqmphenbkd +sqijafyzloguvxwctqmpheqbxd +srijafyvloguvxwctqzpherbkd +srijufyzloguvxlcsqmphenbkd +srijafykloguvxlccqmphenbkd +srijafyzloguexwcrqmphenzkd +sridifyzloguyxwctqmphenbkd +srijafyzlogfvxwctqlphenbkl +srijafyzlodqdxwctqmphenbkd +srijafyzloruvxactqmphenekd +grijafyzloguvxpctmmphenbkd +srsjakyzloguvxwctqmphvnbkd +srikafyvloguvxwrtqmphenbkd +srijafyzloguvxwctqjpserbkd +jrijafyzloguvxwctqmpgesbkd +swijafyzluguvxwctqmfhenbkd +srijanynlogovxwctqmphenbkd +jrijafyzloguvxwctymphrnbkd +srinafyzloguvewctqmphenbzd +srijakyzloguvxwctqmphcnbka +srijafyhlobuvxwctqmphenbka +srijafyzcogusxwctqmphwnbkd +srijavyzlosuvxwctqmphjnbkd +orijafyzxoguvxwcnqmphenbkd +srijafyzlogcvxwvtqmthenbkd +srijapyzloauvxwctqmphenvkd +srijaflzloguhxwctqmphenbwd +smijafyzlonuvxwctqmphenbkw +jrijafyzloguvxwclqmnhenbkd +srijaqyzloguvqwctqmphenskd +srijasyzloguvxwctqmvhenbku +crijtfyzloguvxwctqmthenbkd +srrkafyzvoguvxwctqmphenbkd +srijatyzloguvewctqmphenbld +srfjafyyloguvnwctqmphenbkd +srijafyzloguvxwctqjpbenbkt +hrijafyzooguvxwctqmphenbld +srijafbzlogscxwctqmphenbkd +srinafyzlogxvxwctqqphenbkd +slijafyzloglvxwctqmphenbdd +srijafyzlogjvxwcsqmphenbld +sryjcfyzloguvewctqmphenbkd +srijafyzloguexwctqmohknbkd +jaijafyzlogevxwctqmphenbkd +srijafbzlogavxwctqmphenbki +srijafozlogpvxwctqmphgnbkd +srijdfyzloguvxwczqmphenbkm +srijafyzlobuvxwctqmphxndkd +mrijifyzlhguvxwctqmphenbkd +srijafyzloguvxbctumphjnbkd +srijafyzloyuvxwptqmphlnbkd +arijafyzloguvxwcsqmohenbkd +srijaftzioguvxwttqmphenbkd +srijafyzlqsuvxwctqmphxnbkd +srijafyzioguvxwctqnphetbkd +prijafbzloguvxdctqmphenbkd +srijaeyzlnguvxwmtqmphenbkd +srijofyzloguvqwctqmphonbkd +srixaryzpoguvxwctqmphenbkd +srijafyzlowuvxwcwhmphenbkd +srijafydloguvxwctqmptenikd +srijqfyzlogtvfwctqmphenbkd +srijafyzloguvxlctqmpvenbgd +srijafyzlbguvxwjtqgphenbkd +srijafyzlohuqxwctqmphenbka +srijafyzroguvxictqmphynbkd +srijafyzloguvxdctjmphenjkd +srijaoczloguvxwctqmphenbjd +srajafhzloguvxwctqmphenbke +srijofyzloduvxwctqmphanbkd +srijafytloguvxwmtnmphenbkd +srijafyzuoguvxwceqmpgenbkd +rrijafyzloyuvxwctqmphlnbkd +srljafyzloguvxictqmohenbkd +srijafyzlogulxwcrqrphenbkd +srajafyzloguvxwctqmphanbke +srijafyzlhguvxwxtqmpheabkd +sxijafyzloggwxwctqmphenbkd +srijafyultguvxwctqmphinbkd +srijafyzloguvtwctqmfhvnbkd +srijafwzloruvxwctquphenbkd +srbjafyzxoguuxwctqmphenbkd +erijafyzlxguvxbctqmphenbkd +srijagyzlojubxwctqmphenbkd +srijafyzloguvxwdtqmchenakd +srijafkzlogukxwctqiphenbkd +mridafyzloguvxwctqmphenrkd +szqjafyzloguvxwctqmpheibkd +srijahyzloguvxwctcmphenekd +srijafyzloguvxwczpuphenbkd +srijafyzcoguvfwctqmphenbkq +qriiafyzloguvxwctqmpheebkd +srijpfyzloguvxlctqmphenokd +srijzfyzlotuvxwcjqmphenbkd +srinafyqloguvxwctfmphenbkd +srijafyzlogjvxpltqmphenbkd +srijafyzlotuvxwutqmphenbtd +sridafyzloguvxwctqmpyenokd +srxjafyzqogyvxwctqmphenbkd +ssijafyzzoguvxwctqmphenbad +srijafrzloguvxwctqmphekpkd +srijafyzlfgrvxactqmphenbkd +srijafyzroguvxwttqmphekbkd +srijefyzloguvxwctqmpqenbrd +srijefycloguvxwctqmchenbkd +srzjafyzloguvxwcqqmphanbkd +srijauyzlhguvxwctqmphenbgd +srijafyzloguvmwvnqmphenbkd +srihafyzloguvlwotqmphenbkd +srigafyzloguvxwctqmphennsd +sriuafzzloguvxwcuqmphenbkd +srijavuzllguvxwctqmphenbkd +srijafjzloguvlnctqmphenbkd +lrirafyzloguvxwctqmphenbld +soijarxzloguvxwctqmphenbkd +srijapyzlnguvxwctqmdhenbkd +srijafyzkogujxmctqmphenbkd +srijafuzloguvxwcsqvphenbkd +srijagyzzoguvxwctqmpvenbkd +srijafyzlovuvxwctqmrhenbxd +srijafyzqoguvxwctwmpienbkd +sxijafyzloguvxwutqmphenlkd +srijafyzlhgzvxwctqmphqnbkd +srijajyzloguvxwcbwmphenbkd +srijazyzloguvxwhtqmphenbkx +srgjafyzloguvvwctqmphdnbkd +rrivafyzloguvxjctqmphenbkd +srijifyzdoguvxwctqmphenbka +hrijafyzloguvxectqmpheybkd \ No newline at end of file diff --git a/day2/p1.py b/day2/p1.py new file mode 100644 index 0000000..e5026ee --- /dev/null +++ b/day2/p1.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +import collections + + +def count_id(input_str): + rep_two = 0 + rep_three = 0 + + results = collections.Counter(input_str).most_common(5) + for idx, val in enumerate(results): + value = val[1] + if value == 2: + rep_two = 1 + if value == 3: + rep_three = 1 + + return rep_two, rep_three + + +if __name__ == '__main__': + two = 0 + three = 0 + with open("input.txt") as fp: + line = fp.readline() + while line: + (a, b) = count_id(line) + two += a + three += b + line = fp.readline() + + print(two * three) diff --git a/day2/p2.py b/day2/p2.py new file mode 100644 index 0000000..fd01c37 --- /dev/null +++ b/day2/p2.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +def get_repeated_int(str1, str2): + count = 0 + for i in range(len(str1)): + if str2[i] == str1[i]: + count += 1 + return count + + +def get_repeated_str(str1, str2): + out = "" + for i in range(len(str1)): + if str2[i] == str1[i]: + out += str1[i] + return out + + +if __name__ == '__main__': + inputs = [] + + with open("input.txt") as fp: + line = fp.readline() + while line: + inputs.append(line.strip()) + line = fp.readline() + + max_repeated = 0 + max_ids = [] + + for idx1, val1 in enumerate(inputs): + for idx2, val2 in enumerate(inputs): + if idx1 != idx2: + repeated = get_repeated_int(val1, val2) + if repeated > max_repeated: + max_repeated = repeated + max_ids.clear() + max_ids.append(idx1) + max_ids.append(idx2) + + print(get_repeated_str(inputs[max_ids[0]], inputs[max_ids[1]]))