diff options
-rw-r--r-- | 2023/day1/input | 1000 | ||||
-rw-r--r-- | 2023/day1/solve.py | 24 | ||||
-rw-r--r-- | 2023/day1/solve2.py | 65 | ||||
-rw-r--r-- | 2023/day2/input | 100 | ||||
-rw-r--r-- | 2023/day2/solve.py | 24 | ||||
-rw-r--r-- | 2023/day2/solve2.py | 23 |
6 files changed, 1236 insertions, 0 deletions
diff --git a/2023/day1/input b/2023/day1/input new file mode 100644 index 0000000..6edee3a --- /dev/null +++ b/2023/day1/input @@ -0,0 +1,1000 @@ +two65eightbkgqcsn91qxkfvg +neightwompstbkqv1fourfthdcfgtrkqzgrbfrczxbdn +43qsrrlxxq +898dbpjmdqjgtrvdvlxxdnvlfhncdzrt +jninedsrvftdlcg4hhztwofourskrjhcjvthree +five562 +bpnjmtmeightninesix2391 +rftqshh47n +ctpkqsdqz97zqptzjlfbtwo +sjtwonesix6cqbv4 +9zclhrrssvzpcfpqlshfsxs +ninemcctrb5glhmctwol7 +eight5fourtwotwo +18frdsvjxdpxf8dxsevenm +five55foureight +dbqeightwo4sxzsix +ftjjqbgphtmhthreesix1six +8sczkklgr5ncxkhkq +126dzbvg6two4oneightntd +fiveqcplndmmcsixksmmpdqgttwosixnine7eight +eightseven5threesevennine +nmxmcvrzbcppktgbznz2 +five83 +57rqxmvf12 +4nklcvfsix1jvsvxh8nine +tpjppv6seven4sixsevenvnhcxonefjztthdcv +dfkcrcfxkmxccpf7sixkzlgf +ninetwo6hfg +9sfiveffxqthreeqlvhbvrpbd +gtcmqsheightthree51eight +lhszhqvtn12three8xvfglffivekc +hntwone2cmgppck5oneonesevenone3three +8414onehlxjfqghrklv +cdtlrnine2onexfspkgltjrbone8 +tsjvxqljbfivefive11fourfour1st +dhhrftncnttrqz21fbdkkcdbndmdrp +jsfcqhzstnxxlchnxlztwonine5 +twothree2nhjzlhqdlgnplkjts7 +7zndkjxcp4xvqmqlgrhg +446sixqtk5fiveoneeight +3hdqtn2kjdkbzxx +onethree8ninelggjk38xt +2bdnkxoneeightonetskninefive +xcxfqtnpnmdmtrfivefour1seven +1cf +onefive5 +t5dnseventhreehbvkqzhbbttvd +49kdxj +s743dflzcsfninefour8 +eighteightfive7 +2zjsxntjfbkc15vtfkltb7 +knkmdgggk95two2 +dvjdztx6kfzzsscfcj6zz +xvcnqppc4five7threethreeckhtmfeight +4eightthree9onexmrhrfzjjjmfm94 +threebr7 +four188nine856 +szseven9269 +rppvmpprsgqbvbskg8fivedgpv5 +992one +fxthfh9twothree +jldmzlktzbhlsrndvn398five +vdzhddpsix6sixsixvbqmf8mrgnqxsxvxvdcdzmkc +7tv9 +37seventwofour +seven1six723 +nxjlgr64tjlqzphzjdvgb1nd +zmxldpjdsixvzcmrxxzl6 +91cgn9eightzxdzfmj +skhtxclf2ninemqct +foursixn8two7srvbbdldpbtwo +two5gpnnhtseven +onepqmzphpgfive2three +5vrgsfbj +5xmqhfbdt965 +263nzqjrklqkgtcgjcnprgtfj +78qrpdzmczxj7fourone2 +6threed +eight2twogr +96five +2ndkfivetwo6 +41fourckqxpdxdctnqmljkrl +68fzpjjvfhjv4fourhsvqtwo +ffqnvbxdzxhsxg9sevenkhpmnflbgfqsvfzfmxnlfcq +eight1six38one8g +5xhdtqshnc9foureightwog +two9llmcgxhjdghbv +9twoeightsix +f4qmsfgvzxfvxgq33twocmfnd +vqq8two8nhsqpgqnzrsixsix +dbxfbl98nllgpsix7 +svzgxfspxjfbcvonefour4 +eightonefour3nine8 +tqhgbkzmhseven656tczxkfkztwo +pckdctnzvxdgz4 +5pg +7two7vqtqxmddlbhppmpx8kldcgcfeight +gdbmfmppzl96452 +rpnmhfzclkmftsjkpone4sixmjhbjprx +16ljkbvbbc77sixvjlcpdqkvkcrfqslfzvtrqf +4threetwonedrd +seven5mqgztxfqdfdssbc +6eightsixpb +7jqktjqrthoneeightthreeqpssplvh669 +fivekjfktwo21jgtjdxeightseven +cjfvqzvtsstsvqsdgzlcrqnmmkgtvlclhfddeight6 +8247819snr +684 +threedqsvxzfmgrbrtjmjtzjeight57 +1three1233tvbpqrlrpz +bxlljzgmc4twothreenldkshgt +eight9dmzftbzmsgmxvhx7khsgvgmbgg +threehbvlqone9sevenxbccbppjxj +jthreesixqlxlvtwo8 +cg5nineonejtmpthkqncdmcrjztml +six69sixone5fourvhnzkxqrkm2 +mkpqfbjrninemvngbxl1nine5seven +qgxhthreetphvh4fh +four84 +8cdhf9fivexqsxljf +eighthmfq788eight +sevenktvsvvxj8fourgdbnpnthreethreenine1 +zlcmzfsxdvthree6 +mscdeight3 +lhzcxzthree8seven87 +rnrldrcponeqfdlxgz1lpxtf23sixkdqz +6fiveeightsixthreefour +onetwo1nine5gsvbzlsfrp4 +fivefivesix82qhdhnxbgmbttgdqq92 +jk886lfour +kcqmt6qk7gcdzzzzdljdmh3nineshcfnbnnd +sevenfour2krdvsfour +kbvlbhfbjqnr9three +two17 +dlvndnhdbjgtp57 +pqvxgonesix8k72pfmsjl +eight7xq3 +xgzxgtfqvsvvtfr23fzkvphdjmm +8hbkggrpxq8two3fivefour8six +tcxntnppqtbflnzfour6zzgrpvxjtf +2sevenninefive5 +sdvxrpt5lhzmkknseven2one9 +7pcpmgghrbt1zpllhshcsnine +cf8 +mfxnmj2ninesix58eight58 +8hfnnclmmsg64scdrtdkfivetwo +9four1sixj1three +7nrcxngrxxsixmccsb4rhztxmklmccpttwo +jgtdvpseven7two59 +369seven +onegdlthd9one8sixseventhree +6eight9seven +94five +6one282three9one +7rgxznfbf +zrtoneight9sfnsixninesevenzvqdxqjrcdm +five6sixkxksxone3six +qjqrjkjvplkxqvthree58ktgq +7kkc +hr54pmdtnpvzrlskpqrrqhbrnzz +99sixfgnfour389one +ltteightwothreefourfivenine7 +kzpzschjsptdpd6fiveninemxfxlkbmfl +eight7dqpvvplkjxgrxxtvt +41nine +61 +5qfneight7bhhnine8eightoneightfrx +34cjbcqzeighttwoqfdtqtqbl1 +twofivehbxftnsixhtffgqksdseven6 +84mnkvppxk18 +62four6rsph +8fourctcnnzfz +5jngcrllpnonefive +grmspdlkv42tdzctls +67sixeight1 +ninetwo52 +9jdvzhzflgxmsixzklv4cldfivetdmhrlm +eight7twoghldrbzhleightjs +ninenp8 +jxqjeight48qljhkkbfctonethreejfqlr +z9lxzgzkbmr7jtgpczmvblfour1 +545two +56tkxjhndzmtwofour +1ninesixpxxxlfnfn +6threesix9twojrmtl4 +6rjzjlxh5tdfkbjzvm +g8one7ccsix +4jxhxrgrhxv6threegkdsgvzxpzzrjclzrn5 +qhdjbsh5 +8mmngf4lpngqnbtxz +zstqrl5sevengcndbztdcr +mmdsseveneightfdbthreezbqkdbb3 +kkntgp94937 +2zrzntn8three +klklfnxcnmczrjlprktwo55 +7ninecqjtkjsdkqgqvcxtcone6 +bgjjheight5txcsjbvv1 +rqbk4 +soneight2qxbfdkdn51ttfourfiveninesix +czxhmh73llnlspseven8hfqzdpdqmg +26zmphsljkkddzbkninesixnine7 +45six +9f +6five6nine2sevenzzzmvzlh +hfnfour8blpsixvhdz26twotwoneft +87twofive +6one92six34vfive +nine82nine5dbmjmsixseven2 +6rmgq8eightqxrj3tkljktsjxz +onefour49sevenfour5 +sevenftckbsfivegfbgmpcvvvtqdhmbfive8 +hqrdprfhxpfjnlqvx2fivethree9onevxbqtpg6 +clz76eight +seven6fourjvxzrfivethree7cgtvmsfzb +4sixseven7jktrblrk7five +tqlgpnp682qnhpspbfm +mtfive4 +6ninexkds1slbdnlfp66nine +9sevencdqf +jcqccfzmgffrxjcvhpzonerlzkpvk71four38 +fourtwofourfivetjzpqmzvmmcseven3 +zqoneight9 +4twotwo +eightgfqzzcs8eightkkklhsvkmsseven +twosix4 +eightfkthjb83 +8gmqlpdbftwo15sevenjllkpnp +378onefourlqcq +rxlnmcphmzckgz9bpzonezcjcgvdteight +sevenfive2rmzbpmfvplxdvvldnghmfive +tvbctwo1twofoursevenkjbjd +veightbkkp9vntmeightjdrc +ltdmmnlsjzzxqtvnghxjnvg48bqvvvcj +seven4frssnmkjhf +nine975 +zcpdghhlhrvcmxftoneeight4 +rgkxgfkx6cqdxjhdqdf2eight2vzkbbpklqnine +one6six5 +six5seveneight +23krkcf +sdpthreetwo3 +eight28 +3twomdpsvbpvhthreegfrdfqtnttk +9sixsixcqbdd94bzxmjn +6fbbbrvzkzbhhlgthree +hgrnflhgqhd6628three +58tfxks +rfcmcfive51nine +3eight9 +6threecktkhlvcdkmcxdflsdrcfmkpxrmq +fourssvlkcsninesix38fourkfrgbdxlhx +mbhqsceightnine5bzxfnrzdgcvsg +gfjlsvmkfourhf9qfpxmlqkninecrbnjrfpninejdntmjglk +fiveonesix58onefourdnl +hkd33lgcjrpf6four +ftsbbgmv3fourrmctcsxrfv +rkmgfour58841 +gmgskgrfhc54cvpgkkhdhfseventhreefour +three9onegjdmsfthreelrpqfj1hdmbd5 +mkjbxcc9375 +onejxpczj2twofive5one7 +vhclzbp77 +8onesevenseven1 +3seventhfivefiveseven +bpnrkxlnxrq4dzjljgjg2five4three +fivekpxonegm76jqtjrlrns +pmmqkgdmljhdvsixsix6gdrrx +6rzjmrhlr +sixqnblcchkfnstwo9two4xdjns +twolmffnfmdfptjcdtwogqzhtbvph18six +5threefivefive2czfcvqrjcmlcctgninefour +9cvntxx +4sevengzlzjnntxz9ghcpcgvbm9three +2qcck3one +sixqxqnjxk6ls1rdtxkb31 +8onefiveeightljp2 +six7one85ptxktrlbtfdtz +ltgnfzcjblvrdclkonesqgbgplqm3threeeighttwo +1xmnr +pcxkjdtcmnineeight1rl8four5eightwoqvc +twovlhtdxctsnsixfourvsixsqfhbjzklsix2 +6hcdhsgzv +1six8qjdsfbnlzj93gpj +twoxfktts2xmjvcxkjjf +gkgqmdxcfkb6fjjzfsqbhnzxjzsvzkfv +6oneonefourxrnpf19 +qqgsckgrrh5svt2vsd6 +sixtns37 +jqgfcbrd7eightsixrgkqtkf +4bkfpntttsjonemhtcgsnzvjxcftzssdlntlv7 +9jvjqzgrzxslffdfhmcfournhqfckgmfnone +dgeightwothree2zhzfb2 +tldpeight77mh88two +49fiveeightfiveseven4 +three3rpbrvnp2rgnppsctpcqqfd +1one2sixfleightwokhz +7cnnnp6lzcjxfsqbbfqgvnqhklcktrvrlmfszmqchfnine +one9sdqnzhhnine5pkqthqsskrfourgkxbqpzkrxpkrvnk +gbhvg145twohnqfqnj2mxg9 +2sevenoneqfzbfqpcfour +pgcxrr3qhvngreight3four7 +vvbfrnqvgmq3eight3sevenllllfn +twonineqtklzqnd7fourjpqthree +82sixtwonez +nfmjv8pgqtqnkpmb83 +seventwontjbdcs8mthreeqdgfg1 +2fiveqeight +3ninexqt6fourfourone +9ninesevenzmhskrfour2qpqzhqpbgrfiveeight +twofxmpt7fvxkqbht +xmtgrngscqninesix5twotwo7 +onetwo8nvhckltwo +686one1seven +986l +4ninepxhzxmhgsixjncqfhqlnb +5tkvsnpp +njfqd5eighthgzsixnhxgt +seven3seven8seven +zceightsixninetwo9vxmfscp +threemgb77nineg1vzlbvhgrms +5onelfpdchkrqpshsixtwofiveseven +6zmjpkzxttksevenpkbdvksphjseven +smeightwo993 +one987cckfncdctz15sevenkdtrzkkmdz +8rhbpeightseventhree9 +nrnxccfzhrrxhsjhlthreethreenk1nine73 +nineone5threekxv2 +fivertwotwonnrlhqzfpbntdjhv5k +ppqtrhfkdbpkflpnlx85nddjxdctf4fx +lmtwone472 +3vcpbonejmtssvkn3one +8twoninembzfkjdtvdnd1three +eightsixzrrv35hmcpmgjkchfourrg +h87lhbgmzg48twoonenine +six1289src +5fiveqrmscnnqn21 +ninefourfiveninexlcpxt1 +onesix181onesixjds7 +4zvqzgvcd9dzhjzkcgflnhhfive +6threefive7dlvgpzh +3xtvthree +one3cjckmone1six +sixsdtgjtxhsh4qmkqgsp +bznsevenfive6seven6eight7 +7ninetwo4scmttkmkmhjgz1 +32fiveffxpvvfive +8twotwosglcjkxtfour +8ninetwo6fivetwo +ninevjfqnbqshgcnznb2two4 +1btbsqfgxz7 +37skthonehgnine +qprsldzcbzcskqpgpnvjt4fivegpqllvq52 +qnqpzpkmfj5ninejsix6bpcn2 +28jmvbtljsldltwo68fssrjvqtwonev +fourthreefivepxqrrjm7threezjsdhfs +7kmhsdlrsqlonegbr7 +onesixfourbdcgeight53lzpgjlsz +qgpgg377 +five17 +zpmslnjkqc3 +fourvmqhvhdgseven7jtpttjlzvsbfkdrj +bdgcfcsevenfive8527 +1ninesevennine +4sixfour4nh7sixnlkdk +shjz737 +7onecrhjhbqqnn2sixqqgseven +6six1kxpczbxoneone +512vnxncqgtsevenfivesnc +sevenrrdrzlht5 +6ltsix +87sixfourgjh +ngtzsrpxsfpmjzk2 +onefour462ql5mcfqrglrp +l88oneninetbh5nine2 +scgzzmeightqrltnkbjxrglbvsrpd2 +7krheightjlzzmthdrqsnkdqqlkone2 +three4fivexn2nine +sixseven8one6 +seven46five8 +bmbfd8 +one99xgk2 +fivetxfjpmnhdl7 +gktgcbronefiver2d +444six6 +dpdbxrtnnlsfkh694xnqhszfbvcc2 +53mznqnine4dpkkx82 +6sixldcgszrhhvrbhdnc +djfpppftbx6three9ncfour5two +eightljcvn565fivethreegsjbfsjsc +grdtdczfm5krxslvfk +1threekpnhkjbgch2 +four37 +ctlxgcgzj57gmninethree75three +lffrgk4 +one256jxbthjxhtj989kfqnrdhhxz +three3ddsxpt1lgkzlpxfiveninebsnbntpnnine +qxskrjjvtp1chgksksxksg79 +8zjvmfkpnrc32twotqdc6vshzv +8hgdrds54zk +twokr6vkbflkfrcjxvmninenineeight +grjxdtngmrthreerqjvmxbrdvlmqninegslrzfgmcpdhmg8 +5tkdszfcjdm +7jbzvrdprgdx7npn +ctwoneqcmffptjzpone3brdtb4bjnzqx +eight4tjfvrvlcfgdtk61fouroneightjvf +eightsix9four7 +827 +8pgcksninemrt +bggbhgh8 +fiveqsqvlsxc9jnhfdtqvsq71zvlh2 +3z1mrzxfdkqsixseven +kbrtclpktwo6btgpxnbrz8 +5ninefour6three +8ninefxfivekrkklfvnr6 +ftkndksixznvhxrdmj414seven +fourdjjxhb3 +four82 +277leightsixseven91 +4czktzmzctsdqgpqthreekjfm4 +78onezmcxjbrheightfourtltlrnjpg +zvclmdhrrbmslgfmrgtvzpnvqmth1one281 +dnkf3seventwo +sdtpcdc5 +rtn6vfmtvg +gkeightworqtjvmc3fqpzqsevenfivecxff +four49gxrkmfdl5three +9nine3326bcxnclqgsgbng +mjrvfrz7frq2sixfour +twosix3 +j7 +four73zfrdrns +st14pjnfgqpj +dlceightwo53dcjzxft9 +333mzmtlrhkjgsixcjzdrshhpv +vp6stsvtntboneseventwokmdvgthnine +92v2thc +seveneightfivetwofour6 +three76jfx3ninekndxqschpfive +fivefxgbhfour58n +nineninezgn6kbblgf +rjvrx4four71one51 +4mvmdqjfxhzpddseven7nine76 +86mbxjvs +3twosevenfiveh8fiveseven +54bczbfjq9cseven5 +nvghzbcjxn57nineldlklgb5fdkqvbzftl +97mtvstpkrzkrg46four +tp8 +four8sixphlcct5 +2pkccvfmp +ninevmvlmvqqnone69foureight9 +four2xlqrmlp48vdzsevenhtrcjbpc +ffvhhtgz78threeone +bfjnjxr342555 +4czvdggxlbzcthreerjfshqhmj7 +6three24khccsqcnddq +659 +five3lxchdtfvlnjn9mcs9jlsvzbcgvk +mfnonefivetwon2mrbsc +hvxv9three5 +75ninektwoseventhreefour +zvjrcxchzrz7seven +jhmbsknfm5498qtwo +scjnfvnld72gvtzd +8fivesixtwo +tdjkrtrdj7twoneg +8one3five +2nncbsevenseven +fourtfqfnsixfourtwo9threerblgths +twoninebgxnphjsixseven4 +threesevenxjgbpl321 +fourtwopjzfourqvnknmmdlsrhnkonefour1 +six9ninevkxnpmnpjrmnptwo +eightseven4fivethree8 +nine6nineonezdbrz621 +4fivezhvzlvrblm3mgzhf56 +dfkdbtreightfhrp1 +oneeightonecpnkkhpcpqt73 +nine9fdgbzxhvbslzlhkpone78five +two74 +5three36rl7vnk6one +onetj152twoqtjgvsnjpd +6ninefive +fourszvmjknhhvmznine73eightklhbbnrljk4 +89eightjcdftnine +gn7oneeightzcshvfttpnvxrxjdc +four78five44 +tnqmjzd2fivehqpkrkdrkqr +eight6eightfhbqqsqqs1twolhbfsjxfxj +4two4xhppfx +gnfqgghz4xnlcxqpccktwofivextpskbcnn7six +seven133bpthreeone5x +3five55four +6pgmbbbnmrrpdqzjkbsrpfhstwo +556vfzmcbxsqg8 +59fiveflckfmthdd3nine +2nine5six2twosevenqrdp +qsghpdqfivethreefive8 +ninesevennine1 +onevkqcgdc6 +bcdspxmhzsqfhhlghmqh5794blxm +8eight2twomd9gvtd7 +gfjxcczktc8 +ccpgbl3zqtmqjztwox +jvkvvklb5nine2dfsmkljl4hpjbhlpdmt +3rxzrnkdrnltzd +fivetwoone6 +zcsf5rnxgckhktworqsqngvk8xdgtfcdseven9 +rsbfcsix3jbqnqeightsixonelrhfhlldhhfg +njpnzndmdfzkpdseven5rvcsxheightthree +ninethree6zplfz1seven +7dknfz +ninebkhfqdsrone2two5six4 +1x +mhrzpkcmf5three +9vzrqrmtzqnkdhrhv +g3 +sixthreefourtwonln9fourvqgbbht +vfvzttx86db +cpcrxvp5eightfourseven5fivetqnine +7fsfmgbntxrmjmpmmkcnbx +sevenrkmm6threeseven +fivefivebgdssdxqfnthreethreelvln5eight +vxrxtzmtmtssjsevenfourmnhtzdthree4fivesrpcrb +t8fxpzbnfivesix6fhrcklhvfive +6threetzjvzkbdp +gflz6nine5 +ldnn7qjz1lcgsmvjpbtplztmvseven3 +threefourtwoeightdfpbjbggx3m +4nineonenine6kkzsmfdrl +lmmpsdmnnsrgkbzcdfive5 +4onethreejcrgddkxthree +9twonexr +pvjdlxv1xlgkdsixsixone1four +fourtwofivenine2 +xl8 +tfmfive7 +9q8svkhxgvbmhseven +fournmtqnnphzckqsnpqddlvgff1ninetfhdknbnl +6fivetwo59gxbzxrkdvhfive3 +ndbrshkmc9 +4fourseven +lkdcxdkkxthq5 +ftwo2pgpljh11fpbgl2 +hhjrfcchcjlhninexmv6 +9bpzdrrfqcs7eightwob +8eightfive +57nnbqt5eightzvfblxstz9scfnnv +92three7xkkdskhvseven +ghlbrzxhlkh63three +5nine7fourtwo78 +3dvxdphhxgrbfrlq4qxzslfng8rrfjnpjdnxc +brq68eightoneightvrx +four7twooneeighttwo +onenine2nineninesixfive +slltwone8kngkhvgkkphrmgprnm9 +twonhsxggcslm3zqmsixfive +pzgpspbfivetwosix9btjbdfbdeightj +fivezpdk34ninephlzvddrmzvkztwo +sevenfour223qvxrdrvqgkqpctbrzeightqtxjnhgz +7373sevenrrsfzsfour +rttwovggcqtzx2993 +twonineonegpcpdqrpd284 +2fourfrzkbkhninegseven83one +1pjqvdntbseventhree +eight19tszhr +hngn5fqfcfxrnfs +6xsxcgkdstncdl19c1two +cvrdkrqrmssevenfivecjblqxjbzqtvkqhmcm18 +zqtblgtqttwo9gmkcfkdcgbq83 +bdrmrsrdfponeeight3fvvsrfbshbzbqztmhbbzpkxxnb9eight +4trjldtsjdc8vkgvseven +37fourfive9three7nine +fourseveneighteight7fiveonexxmmjzlbhk +fivetwothree8seveneighttwo5nine +mqmeightwo3 +8cjkdcdk +6cjnjht51knzzcsqkvtwo +5dshlzzxxggninesix1two +9seven1eightonef7 +two75sixfivesixhthreethree +1fntfzqrjcxlfprglcsix7 +4lgcgkseven +r15two +eightdsxsnqgfnbntvnqtsfpr1 +sddbms6nine6 +7tpdrfpbd +flmztqone7sixzdqlxhfiveoneone +jzpvdcvnzmmgzhxlcsevennine2 +nineseven3cqktfscgtf +rdhrxhfn8hbhctkkxz3 +7cjzxmlvq48kvmxgmcd +twoeightlqpfv5fourdfv77 +8sixfivegnsevenlgdkfcfznine +fk8hcndpfflmsbjlseven +1onesscdrlztwoonezfm +n8xdcmfxvvgm1b +psix3 +gmpnine5ninekfmmhbrnq +713six +gqplptccrthreethree3jdgbtx +1onergncpbv +5fivetwo7two6nine +4sixqrrtqjnv7 +onetwo7364fqrjghsbzp +five7shstn +5sixkcspphnsxndzfdghh +jhxpxxpfz4sfkpgeight9ninedclxgv3 +fourqfzqsgpt4ljtrrxn2 +8seveneight6fhnf9onethree +bjgdq8two8m6bnnbdtqvlf +eightgjrvdjhz6 +rdkvkqhfourdpn7tkjbflm7 +1ptthreeeightonetwogbh95 +92four96 +2sevenpkfgj75 +lpfnmmp2eightmbrzxdskx7ninetwo +gjmxfive7qqrbsr +qxprvlrhxlj1threethreevrvvc2eighttwo +vdqmnccqsplkpmspqcggvllsxvh1 +fvdhvmgzseven2fnrrslbdtwo6 +fivefive9smbxkkp192 +vbsdstvbknldcgkzkgqjln7 +mklnltnfsixphfgfzseven8fivenine +jbshrqn2three844 +6nspp1one7three5 +six3four571 +nqjssphmsbhbfhp822one +9kffmtffiveeight3 +sbfbphdgjh4sixbfcrzmnlhxcsksctb5tdtm +7bfzk7mvrglxjfour2tzrkz4 +onethree36 +zdtcr45four2tpgqsix +sevenmqgjhcjpnine63zllrtnm1 +jnccdbplkfq6oneightd +one8flhbdbl93 +rrmd34 +six1lkthggkbtwo5onesixthree +eightl294eightlb +eightzngvqdmfgvfvhlrxnfourcfggfgp9 +dkmzgc73l +839fourone5 +xfklsdj6three22 +soneight6cvgndhbtttlbpqktwo +5nine1four471pnnvsix +zqrfmnpgzkqrshrpktfbndvfmrcjhfqlhcbn9rrffzngrhnthreedbgcm +xcmt2fournine +seventfgnkd87sixthree +77fktkx +3mdzzsvdmltl7jeightfivenine +seven988five +9975 +eight4sbc5eight9 +mxj53bsh8fourzv4 +817 +99ninevnonecfcbsjgnrzrdffll +twofftvkshm4 +one221jjbtlgdtt +68sevenfive2lhrblxpkdq8nine3 +39cjrgljlvxdfivenhptwoccjbhtnmqreighteight +sixfoursix74fzdtnx92 +rhpktnqsvqxn51 +35nine1 +43gqzppsnktxm2 +5five566dtbppfp +nine7one23sixsix +93fourbqmsspdhr +cm5qcfxfcsg3qcvstwozhsnspg +227two +qfrtvpnh8 +one4jzmmmjjk +4vxvngmtjxldcn2 +bjgb2kvrlshdvfj1hnpfbtxkp +7eightpzmxcmcnsmtkxjt +hzhjbddqj961zkxgmhxdthreetwo3 +7fivetwo5dvpplrmxqrzxtwofive +717mfszgrbt +chqhsqt7hcmbjqstfive +threesevenkknvhhtt7399k +7n +6twohzlngv +eightthreekkgt9mqzvkql9txh4 +8fcsndmltseven +twodjscb5sxfourtwod +5ssbz +onedvpnnfvqxvfour1jggdsxfdgrqfrgvssix +sevenk94mthklgmsxhxdjxslvfive +bjqshcpk26 +nine7sixzx7 +9threexsfqxqhvvbsjzrbmxcfssix +geightwonineqp7twoeight79 +8b8dllrmvgnmhshvkhm +7grpghbfourlsixthree7 +1xzrhgxsh7threetrqqvsl1hcmmk +fivetwoppnseven9sltkmcsntzldvqzfour +6flgcsj +nine44onedninesix7 +hrlfdsmjqtbpfpxljhjrrxrrdnrlzf34eight +sevenrzgsvq6 +39sixjshdjrfmstwo2tzmzhgggdqgflp +tcrvlffrmqrcx6bqbvhlcbgtwo351 +9281qzt35jmtpjgqq +qpdtvpmfbqrmthreetvlsr2fzbzkthreerhqvqbcnj +two3fgrnggpcl +7onexrnvssfjczlmkzgprnone2khmhntg +6lzggxthreefour26tnxfcqbl37 +8rgnffphzgponejfive +bmpsevennhrkphhbfz8nine +5mkbbjdcqninenine9 +zrfvhcreightone9five +19chrfkm6gqlfcfhmslmcmr +dzrt197twonine +vmrlbm5five +pthree3six417frljvddzjtgdvmmh +fournine7lmzdrxvjsixlmfsgtwonesn +ngt8fdcsgmbbvrone3 +3hfhppzdfp +sevenqvrlkpgxnqfivexnzpxcnine99 +38oneightg +4fivezjzsstlfxp1pdjmmnvjvtthree +xfngrdrfseven5rcsqtflhsqz +three3jtndtxpx +eightfour8xxtkjsjlrsmg6 +1qnjttkhzltvj2xtlts6lqlxrf +eight817two52sixgmhsrnlzm +fourgxbk81 +eight6eight +4pllfiveeightsixonekhxvhvx1 +41twothree +9pcdldnine +vkkncnrblg2x36 +sevenzrqsix3 +ccpnk5threeeight1 +rj69 +ninedzgnsvrjbg4eight +nine3onesevenxvpmmt5eight +drcbrg9eighttvdqgrchlqnineseven +five6two3bgzgtvxmj8 +sixfive9 +7txddsmg2hzhz1fourkkthree1 +3pvgxxxmpt5eighttwocnvnine +cdnbkl3 +twosix9sixninevftwo1 +392 +427twozqp79sixtwo +2jpkrm16 +threelbspfkeighthxmmcpprmeightthree3 +bvtfzpr36nine +qdzfdzbvnk47twofive4two5 +ninethreedfzrphlvkpbvtvmzjxgmrh6five +cjnq7gnpnpt +six8nine2 +chsdgnlrzqnddfjthreebhfdvlgfpfshkeightseven6 +nmlqvslhk6fourninexpzlf9pfnbrnhphxzxh +eight9nfgtsjxnteight8pfpfctjxxbffxsmjtwonegcd +nine8m1 +9sixseven +218 +6brzzmkxsm +ftxrrhzz1five98kninepc +3kkmbvvvtwoksspmqksevenoneplone +eight3sevenfour7two8md4 +jvtk22472 +threetmpkcsjsixfour6twoseven4 +kclmjgdplc23ninekmqbrkxrkdhsnnhmthreecfive +xkzbzkszml641one54phdfghtbdd +3442four8vr7 +6lthree +lfrlxpczfiveseven2 +fhjjlb1fiveninempnvlzbkhsvqf6 +fiveone66onesix6dtwo +91bgqfz1four8 +7two8sevencvfjhqmdtfone +889two3db36 +sevenhlljx5qoneeightfivemvsmbzdbznine +one45sixft6eight6rbf +gdsevenknlfourkmzlpvv3flsfvnmfseveneight +3qbs622fivemzqpxdfkssix +275fr2eightoneone +lktbgbhngfbrzdponerqstslfourhjxgmv1qcj +two9fivelsxpd2six +9eightnine +qmteightwosixseventznkgmnhjvdfxvqv8 +ninenine9jdgndgnfour3pgb4gdpjnt +three3sevenzcbllclmseven1threeeight +xzbkxnttninexsj2 +ngrgdonefive94fivehgnt7 +3nineqnvhsninetfeight22eightwoqf +phrzskrhbd9five8nine +dqqnfive1 +hsjrhjvmlqxltxxgqx6qbfsnrhgbkl +four5hrpnq +vfsqhhgb6eightgtjlvnxnqsrjn3pg +71fiveknrgx7 +dpeightdbvpnfour1 +two59blldsls85 +three22nfvmtd77mbjnvxqbdxkxvp +five56five22 +jtqeighttnkzkbbtwoninepzxphtlbzsv8 +1zhktrqsklfivegxdhrqt +three422 +8sqlrqn9 +zh8 +1fourone8 +94kkqb9four9 +6sixkbvxf +rbvxqgztwopcbhhgzthl6xsix1qjrvfive +two29one594brhbpnine +7fivebczzcfeightfour +bxqrdcx7sixthree +xjqchs31twoeightthreesevennine +83five8qvnrcllfhddhltsevenone +gsjjxtvtck7six +cxsbtkzcgjbgninehhmzzfnine3bpzg7 +six7threedbhtvcvjtmeightz +pdfmjbqgvkr5t +cqbkrkfivexkmvgqfbfsg5zmfhbqkdcq1 +6ptrseven65tvbjkqlhjhjq26oneighthsp +39eighttwoninetwomnszqrmtvj +hfpcgzrp8pmmvonevtnfpfltmgxqzntwo +seven6cd8eightr +1vbpfiveseven5gsqdpchrjzfour +7zlxvvjmlnonesix67two2sfggmgbmm +rmgvfvdhhgztrrn966six9oneone +6nkvznctwoone +eightthreeg9nine7six +shthreethree1 +tm1eight8rone575 +nv6 +tpkgndlhdzlfour1fouronethreenhmgtjzn3 +9onetwol2qmltninehtrmfxcsbfghk +2vbqxkgp5two89one +428ninefcskeight +g3fournine55eight +hmnvcgtqsixfivebone6 +mpcp55xdfive33mdbsc +bfpfrrlqsixfq9cnzvffncbn +hmpvxz3fiveklnnjcvgxtplhhzdrn8seven +gqr6fiveltkqqfvkhconeseven4rlqnvmmkgcx +two2eightwokcr +eight1zmqpcjbbxkkcnk8 +pq6qhfnm +sevenseventwo5three7 +7eight1mkpmsvpmqfjnvqzgbjkmpc2 +gtwoflpblvv6xzpblmfcbx +32five +four3two843nlxxhktmcdoneightjh +89gjs7eightnineonethree4 +4rfcbkgrcfb6three7jblgcrrxp5 +mhs47tqvkt31twofive +pspptsbp55 +fourfour5twogdvjvskqx8foursix +eightxfvnrpcvjtfkvlng91eightcdgzhxzcm +nine5psngtrxms5vnrbjjrpgt +5xnlqscssbfiveeighteight14 +svzlbtdkhs5eightfourgzhsix944 +fourbphkpbkcfss5l +4four6 +onetwo99 +nzhlddbkgcbxvpfour1twofiveseventhree3 +2one2txrzz8fivethree +seven86 +two3tznttbfkzzbthreexqhxqmbj +dskppdthree2 +seven4lfive +hnftvrk8fhhzrqzxxqzbhvjhflv2nine +eightsix2zbsgtdvrone +rmssljck3sixfivehvsvtwo9ctrbfvhpxfrr +3nphszlp7ktrtzflbvxnfive +cfrrckdlfmjkmvjbtxnsdq613hxlsix6 +spljfjrlrsix2fsl +threeonezdbmxps9 +two2lnbvmmpnqq8ssonethree +vvpjpvm6two7 +424 +threek811nine1five2 +82mfsgmh +ninerrjtnkm4nine +sevenonenine7 +nine16698llgxbbglggone +knhnxtj6ntkxnine2eight7 +286nx +twocbxfonenineonerxvdjzjzcp2 +2one5 +ninethree25sevenfour69 +chthreeone9eightoneshlgndnrjoneightcs +2onenvfszxbphone +9threefour +eightonenine28one +3bshksixrlncdqtk3foureighthjcmmktsvx +prlsj7seven +gqxoneightzmcsqsbvhbthreefive16 +3kbqbzm2sixnine52onekrtoneighttq +hqnfive2one +jfive17onemzd +6one2eighttnjzjk +vtmcxnttlxltcmseven2svp2pnzkbgzzzj2one +54mhqbcpzgsd2ld +3fvbnineeight +fivejrxqnqp11cxeighttwojqbqnhmeight +twoonetwo49sixxjbkdoneseven +7qnqpfb9xrhtxkfz9three +one8four1 +2r3lrgjltxxlrhrvfltwoonevq +jkptfcvdtwo347mjrqd +eight9cxstff +7nqqbkcsftknhqffjvr2sevenpkjvtc +seven5sevenrsthreefiveone +8mmvdqhone584eighteightfive +7sevenjjgvr4 +465nineninesqnslzrfpl +ljqnr737gvfmpjztrsbns8two +hkmdgbbrzpjczpqkhzkdmndlftxgtwoeight26 +nhskzhxfk26lpklkkkdnxeight +sixrqcjqseven7sbqlnpqvshxninebxmkxfrznine +xlrrfnt7jjhfqzr +one9six3 +sevensevenpsbgtgqpmbsbbpldvbz2qsstxlcgkd +5qpmvbnpfiveoneeightsevenone78 +four69seven +2nv +1twovfmvk33gcrsfgdbms +fivetwoone93 +g4sixjbcqttbhnp6fourfplmzdtnltnjqdsthree +f3 +one3ninefiveone3hlsthrp7 +lmdgzgkrq747nine +fourtwo7 +7353bdninesixxtc +njnsprmjxcjn42sixp1 +92onefour +5eighthkdf +263fiveeight +four96one52fivendcnqcl +rcntpkdtjlcxkdg8 +nt7g55ninetfzrjmhrv33 +two19 +ninefive5threetwo73pxjfive +onethree42 +9dctnplfgkeight9 +xpjtknfive6five +q1ninefour7 +twohfdckgcddpmjbpmgbxnineeightxcxkhssjt1 +8hgcs3onemnrcfbgsh9fdc +7zmgns94ninenmm +3four3 +hrrt3nine292fourfour +ljsbmrfmnpgg799twosixfoursix +sixjj6 +gqmvmmjsjrgn7fiveninetwovnjbs +m2 +525onefive +ninesixlm7fiveeight +fourfour6eight5gpkpjdxqvrsp +two5sixkrmxnszf1eight6seven +1bbmmf +26two +9eighteightfivesix7 +mcjcdnhlxv92qfbfbdpxfnxgbqsnxkonethreeseven7 +9qlvlrfivefzdxpmttsllhntpxpfthree +djdjgxdpnd82five +fiveonenine19four4two +five69two7sfj +twoonelvmdbdq2two +qxeight6trprdmgqzj4 +eightfourdvmbvnjthreetwormzfr4qgdctg +fournngpdffcxt1six +seveneight6zeight9 +fkkmfbd7nineseven +twobtkvbzgplfpjfiveseven5 +9jsjkjhgtghbqltldlcpqtvgpmhsixsix1four2 +kxcgkvkmnblfive438 +six6lbbqlttnvfiverxceightwobx +8sevenseven6three9ptfggzkhm +one7ninemdjznbqhfkckpjkxtwo12 +1bvjgdjlll +43kjdtwofiveseventhree9 +fourlgzcrldtwoseven9xndlqvbrtonennvlvzplrt +8twohzmcknlmqd +gshhvf5twodqgdseven8fourfoursix +nineone47sixeightrp +4stonekdgdhxrtqv9sixonevhhmhqzp +8lmpppc +4five8ffive +fivefivesmmkh6jhtggr4 +tjrr9ninenine +six6fiverqdlm67hztn2five +six3278xsddmnz +8qlhdpxn645nhrjm +xlfttcfs6jgtbeight6sixdvpl22 +87tcj6gkjfrrmdjbgh4 +6eightsevennmdpkkmkqrffgshrfhml7two1 +ninemglsrmvqrk5six +9nfgt1rntwo1826 +three2fiveonexrllxsvfive +9zjfkmdfbfqqf2mxpnqsmsthjzzszdxl +43eightnvdrthree1eightoneggrdmnp +pffldcmnlpsevensixqxhdncrclbc51five +5bqnlphone6 +195one diff --git a/2023/day1/solve.py b/2023/day1/solve.py new file mode 100644 index 0000000..b6a47c1 --- /dev/null +++ b/2023/day1/solve.py @@ -0,0 +1,24 @@ +def main(): + final_value = 0 + + with open("input", "r") as f: + for line in f: + line_strip = line.strip() + calibration_value = "" + for char in line_strip: + if char.isdigit(): + calibration_value += char + break + + for char in reversed(line_strip): + if char.isdigit(): + calibration_value += char + break + + final_value += int(calibration_value) + + print(final_value) + + +if __name__ == '__main__': + main() diff --git a/2023/day1/solve2.py b/2023/day1/solve2.py new file mode 100644 index 0000000..e545cf3 --- /dev/null +++ b/2023/day1/solve2.py @@ -0,0 +1,65 @@ +def main(): + final_value = 0 + text_digits = { + "one": "1", + "two": "2", + "three": "3", + "four": "4", + "five": "5", + "six": "6", + "seven": "7", + "eight": "8", + "nine": "9" + } + + with open("input", "r") as f: + for line in f: + line_strip = line.strip() + calibration_value = "" + + text_digit_pos_first = -1 + text_digit_value_first = None + for elem in text_digits.keys(): + pos = line_strip.find(elem) + if pos >= 0: + if text_digit_pos_first == -1 or pos < text_digit_pos_first: + text_digit_pos_first = pos + text_digit_value_first = text_digits[elem] + + text_digit_pos_last = -1 + text_digit_value_last = None + for elem in text_digits.keys(): + pos = line_strip.rfind(elem) + if pos >= 0: + if pos > text_digit_pos_last: + text_digit_pos_last = pos + text_digit_value_last = text_digits[elem] + + for index, char in enumerate(line_strip): + if text_digit_pos_first != -1 and index >= text_digit_pos_first: + calibration_value += text_digit_value_first + break + + if char.isdigit(): + calibration_value += char + break + + index = len(line_strip) + for char in reversed(line_strip): + index -= 1 + + if text_digit_pos_last != -1 and index <= text_digit_pos_last: + calibration_value += text_digit_value_last + break + + if char.isdigit(): + calibration_value += char + break + + final_value += int(calibration_value) + + print(final_value) + + +if __name__ == '__main__': + main() diff --git a/2023/day2/input b/2023/day2/input new file mode 100644 index 0000000..df90739 --- /dev/null +++ b/2023/day2/input @@ -0,0 +1,100 @@ +Game 1: 7 blue, 5 red; 10 red, 7 blue; 5 blue, 4 green, 15 red; 4 green, 6 red, 7 blue; 5 green, 8 blue, 4 red; 5 red, 4 blue, 3 green +Game 2: 8 green, 3 red; 7 blue, 6 red, 8 green; 7 blue, 3 green, 6 red; 8 green, 6 blue, 11 red; 6 blue, 3 green, 12 red +Game 3: 6 blue, 3 red, 7 green; 3 red, 3 green, 8 blue; 8 blue, 11 red, 4 green; 5 blue, 7 red, 6 green; 9 blue, 7 green, 1 red +Game 4: 3 red, 4 green; 5 red, 1 blue; 2 green; 3 green, 1 blue; 2 green, 1 blue, 1 red +Game 5: 17 red, 5 blue, 3 green; 8 green, 9 red, 10 blue; 2 green, 9 blue, 4 red +Game 6: 5 blue, 6 green, 3 red; 1 green, 8 blue, 12 red; 2 blue, 13 red, 6 green +Game 7: 1 green, 1 blue, 6 red; 1 red, 8 green; 3 red, 8 green, 2 blue; 14 green, 4 blue, 4 red; 4 green, 5 blue; 7 green, 2 blue, 1 red +Game 8: 6 blue, 9 red, 3 green; 2 red, 6 blue; 2 green, 1 red, 2 blue; 2 green, 9 blue, 6 red +Game 9: 5 green, 8 blue, 8 red; 2 blue, 6 green, 8 red; 6 red, 9 green +Game 10: 2 red, 2 blue, 12 green; 8 green, 3 red; 5 blue, 11 red, 6 green; 14 red, 1 green +Game 11: 2 green, 1 red, 1 blue; 4 blue, 7 red; 7 red, 7 green, 5 blue; 2 blue, 3 red, 6 green; 3 blue, 9 red, 7 green +Game 12: 9 green, 7 red, 7 blue; 6 green, 4 blue, 1 red; 3 blue, 5 red, 7 green; 9 green, 10 red, 12 blue; 11 green, 5 red; 9 blue, 12 green, 3 red +Game 13: 7 blue, 7 red, 2 green; 5 blue, 5 green, 7 red; 1 blue, 10 red; 11 red, 2 blue, 1 green; 1 green, 1 blue, 4 red +Game 14: 2 blue, 10 red; 3 blue, 6 green, 17 red; 3 green, 4 blue, 14 red +Game 15: 7 blue, 2 green, 4 red; 7 blue, 3 red, 3 green; 4 red, 2 green, 1 blue; 2 red, 9 green, 5 blue; 2 red, 4 green, 5 blue +Game 16: 5 blue, 1 red; 8 blue, 1 green; 5 green, 3 blue, 2 red; 8 blue, 2 green; 2 red, 2 blue, 5 green +Game 17: 2 blue, 5 red; 7 red, 1 blue; 2 blue, 2 green, 3 red; 3 blue, 2 red, 1 green; 5 green, 7 red; 6 red, 3 green +Game 18: 4 blue, 1 red, 14 green; 8 red, 4 blue, 14 green; 6 red, 11 blue, 10 green; 5 blue, 2 green, 3 red; 16 green, 10 blue, 2 red; 6 red, 4 blue, 12 green +Game 19: 10 green, 12 red, 12 blue; 5 blue, 12 red, 7 green; 15 red, 8 blue, 6 green; 13 green, 1 red, 10 blue; 4 blue, 8 red, 9 green; 16 red, 7 green, 3 blue +Game 20: 10 blue, 9 green; 9 blue, 1 red, 3 green; 11 blue; 6 blue; 8 blue, 10 green +Game 21: 4 blue, 4 red; 1 green, 3 red, 3 blue; 4 blue, 1 green, 2 red +Game 22: 5 blue, 4 green, 1 red; 14 green, 4 blue, 1 red; 4 blue, 4 red, 13 green +Game 23: 6 red, 8 green; 4 green, 1 blue, 7 red; 10 green, 5 red; 2 red, 9 green +Game 24: 1 blue, 10 green; 12 green, 5 blue; 1 red, 3 green; 2 red, 4 blue +Game 25: 2 blue, 3 red, 13 green; 7 blue, 15 green, 1 red; 7 blue, 2 green +Game 26: 20 red, 5 blue, 4 green; 1 green, 8 blue, 11 red; 7 blue, 6 red, 2 green; 4 green, 7 blue, 4 red; 5 red, 8 blue +Game 27: 3 red, 3 green, 1 blue; 3 red, 1 blue, 8 green; 3 blue, 4 red +Game 28: 1 blue, 15 red, 2 green; 15 red; 3 red, 2 green; 3 red, 1 green +Game 29: 4 blue, 7 green, 1 red; 5 green, 9 red; 8 green, 1 red, 10 blue; 2 blue, 1 green +Game 30: 9 blue, 5 red, 6 green; 15 red, 6 blue, 3 green; 13 red, 2 blue, 4 green; 2 green, 3 blue; 13 red, 8 blue; 5 green, 6 blue, 17 red +Game 31: 1 green, 9 blue, 9 red; 4 green, 8 red, 1 blue; 10 blue, 2 green; 1 red, 1 blue; 1 red, 1 blue; 6 blue, 9 red, 5 green +Game 32: 7 red, 7 green, 3 blue; 14 green, 11 red, 11 blue; 10 green, 7 red, 2 blue; 1 green, 4 blue, 4 red; 9 blue, 10 green, 5 red +Game 33: 12 red, 4 green, 11 blue; 4 blue, 10 red, 1 green; 7 green, 10 red, 16 blue; 15 red, 5 blue; 10 green, 4 red; 8 green, 5 blue, 6 red +Game 34: 8 blue, 1 red, 2 green; 3 green, 3 blue, 4 red; 6 red, 3 green; 6 red; 9 blue, 4 red, 3 green +Game 35: 6 green, 6 blue, 1 red; 3 green, 3 blue; 1 red, 5 blue, 2 green; 1 red, 13 green, 1 blue; 3 green, 1 red, 10 blue; 5 green, 4 blue +Game 36: 15 blue, 1 red; 2 red, 3 green, 17 blue; 6 blue, 7 red, 8 green; 12 red, 7 green, 14 blue; 4 blue, 2 red; 8 green, 12 blue, 10 red +Game 37: 2 green, 2 blue; 6 red, 3 blue, 1 green; 2 green, 3 blue, 1 red +Game 38: 2 blue, 7 red, 9 green; 3 red, 18 green, 6 blue; 6 red, 19 green, 2 blue; 2 blue, 13 green, 7 red +Game 39: 12 blue, 7 green, 3 red; 16 green, 6 blue; 1 red, 4 green, 2 blue; 15 blue, 2 red, 2 green +Game 40: 18 blue, 1 red; 4 green, 15 blue; 5 green, 17 blue, 3 red; 4 red, 16 blue, 2 green +Game 41: 3 blue, 14 green; 11 green, 8 blue; 14 blue, 4 red, 1 green; 5 blue, 2 red, 15 green +Game 42: 7 red, 9 green; 10 red, 19 green, 10 blue; 16 blue, 8 green, 7 red; 6 blue, 11 green, 7 red +Game 43: 1 blue, 5 red; 8 red, 2 green, 1 blue; 4 red, 3 green; 2 green, 1 red +Game 44: 5 green, 13 blue, 12 red; 18 blue, 3 green, 8 red; 2 green, 3 blue, 11 red +Game 45: 3 blue, 1 red, 4 green; 2 blue, 1 red; 1 blue, 4 green; 3 red, 16 green +Game 46: 10 red, 1 green, 4 blue; 4 green, 14 blue, 2 red; 12 red, 3 blue, 2 green; 4 green, 2 red, 2 blue; 2 red, 1 green, 11 blue; 2 green, 19 blue +Game 47: 10 blue, 10 green, 3 red; 3 red, 11 blue, 9 green; 4 blue, 10 green +Game 48: 5 green, 1 blue; 4 red, 8 green, 8 blue; 17 red, 5 blue, 2 green; 12 green, 18 red, 7 blue; 15 green, 14 red, 8 blue; 11 green, 1 blue, 16 red +Game 49: 2 red, 4 green, 1 blue; 1 green, 5 blue, 2 red; 8 green, 3 blue, 1 red; 4 blue, 3 red, 9 green +Game 50: 2 blue; 7 green, 5 red; 3 red, 3 blue; 5 green, 1 blue, 2 red; 5 blue, 3 green; 4 green, 3 blue, 1 red +Game 51: 6 green, 13 blue, 3 red; 7 blue, 7 green, 1 red; 15 green, 2 red, 13 blue; 1 red, 7 blue, 3 green; 11 blue, 16 green, 1 red +Game 52: 5 blue, 2 green, 14 red; 4 blue, 3 red; 10 green, 7 red; 1 blue, 10 green, 10 red; 9 blue, 5 green, 12 red +Game 53: 1 green, 2 red, 1 blue; 4 green; 1 green; 2 green; 2 green, 1 red +Game 54: 3 green, 11 blue; 12 blue; 1 red, 3 blue; 7 blue, 1 red +Game 55: 7 green, 7 red; 1 blue, 7 green, 14 red; 17 red, 2 blue, 5 green; 1 blue, 7 red; 2 blue, 3 green, 14 red +Game 56: 3 blue, 2 red, 1 green; 1 red, 4 blue, 2 green; 5 green, 1 red, 2 blue; 7 blue +Game 57: 1 blue, 14 red, 7 green; 2 red, 1 green; 1 blue, 6 red, 6 green +Game 58: 11 red, 2 green; 3 green, 8 red, 8 blue; 10 red, 1 green, 13 blue +Game 59: 11 green, 5 blue, 11 red; 13 red, 6 blue, 11 green; 6 red, 7 blue, 12 green; 9 blue, 9 red, 1 green +Game 60: 3 red, 8 blue, 4 green; 5 blue, 2 red, 3 green; 7 green, 3 red; 8 blue, 2 red, 7 green +Game 61: 17 red, 12 blue, 9 green; 20 green, 5 red, 14 blue; 9 blue, 11 green, 15 red; 14 green, 6 blue, 14 red; 16 green, 7 red, 4 blue +Game 62: 3 red, 11 blue, 16 green; 1 green, 6 red, 6 blue; 7 green, 6 red, 9 blue +Game 63: 3 blue, 20 red, 1 green; 11 red, 5 green; 13 red, 2 green; 15 red, 1 blue, 6 green +Game 64: 8 blue, 1 red, 11 green; 1 red, 11 blue, 4 green; 5 red, 7 green, 1 blue +Game 65: 3 blue, 13 green, 2 red; 2 blue, 3 red; 10 green, 8 blue, 2 red; 2 red, 6 blue, 8 green; 10 blue, 12 green +Game 66: 4 blue, 3 red, 8 green; 1 red, 9 green; 7 blue, 6 red, 6 green; 1 blue, 1 red, 11 green +Game 67: 10 blue, 15 green; 3 red, 2 blue, 1 green; 4 blue, 12 green, 2 red; 8 green, 11 blue, 8 red; 9 blue, 5 green, 6 red; 10 green, 4 red, 14 blue +Game 68: 4 green, 3 blue, 4 red; 9 green, 2 blue; 6 blue, 6 red, 10 green; 5 blue, 4 green, 5 red; 3 blue, 10 green; 5 blue, 5 red +Game 69: 6 blue, 1 red, 1 green; 4 red, 3 green, 2 blue; 5 green, 3 red, 5 blue; 5 red, 5 blue +Game 70: 2 green, 1 red; 12 green, 1 red, 11 blue; 7 green, 12 blue; 13 blue, 10 green +Game 71: 9 red, 9 green, 4 blue; 10 red, 1 blue, 12 green; 3 blue, 13 red, 3 green +Game 72: 2 red, 8 blue, 5 green; 2 green; 1 red, 5 green, 6 blue; 1 blue, 3 red, 12 green; 5 green, 14 blue, 1 red; 8 blue, 13 green +Game 73: 19 blue, 11 red, 8 green; 18 blue, 9 red, 11 green; 6 green, 19 blue, 6 red +Game 74: 2 green, 4 red, 2 blue; 1 green, 1 red, 4 blue; 2 red, 4 green, 2 blue; 3 red, 2 blue, 6 green +Game 75: 2 blue; 1 red, 1 blue, 1 green; 1 blue; 5 blue, 2 green; 1 green, 1 red, 3 blue +Game 76: 9 blue, 4 red, 3 green; 8 blue, 8 green, 3 red; 3 red, 2 green, 8 blue; 8 green, 6 blue, 5 red +Game 77: 7 blue, 17 green; 1 blue, 2 red, 18 green; 18 green, 1 blue, 2 red +Game 78: 2 red, 2 green, 1 blue; 5 green, 3 blue; 1 green, 2 blue; 2 blue, 6 red, 5 green +Game 79: 4 red, 6 green, 17 blue; 2 blue, 3 red, 8 green; 8 red, 19 blue, 12 green; 5 red, 8 green, 12 blue; 16 blue, 1 red, 12 green; 5 green, 18 blue, 8 red +Game 80: 1 blue, 4 red, 10 green; 6 green; 6 red, 3 green, 2 blue +Game 81: 2 green, 5 blue, 4 red; 3 red, 1 green, 14 blue; 3 red, 10 blue, 2 green +Game 82: 12 red, 5 blue, 2 green; 12 blue, 6 red, 5 green; 13 blue, 1 green, 3 red; 11 red, 3 blue; 4 red, 3 green +Game 83: 10 blue, 16 red, 4 green; 6 red, 2 blue, 14 green; 9 blue, 14 green; 7 blue, 1 red; 4 green, 2 red, 8 blue; 5 red, 7 green +Game 84: 3 red, 3 blue, 6 green; 9 red, 17 green, 16 blue; 13 blue, 7 red; 14 green, 2 red, 14 blue +Game 85: 7 blue; 8 red, 10 blue, 1 green; 6 blue, 9 red +Game 86: 9 red, 6 green, 9 blue; 1 blue, 5 red; 11 red, 1 green, 11 blue; 3 green, 8 blue; 8 red, 5 green, 4 blue; 15 blue, 4 green, 2 red +Game 87: 2 red, 2 green; 5 red, 2 blue; 6 red +Game 88: 2 green, 5 red; 9 blue, 7 red, 3 green; 1 blue, 2 green, 3 red; 3 green, 6 blue, 1 red; 1 red, 3 green, 6 blue +Game 89: 10 blue, 13 red; 15 red, 6 blue, 2 green; 2 green, 10 red, 18 blue; 1 green, 18 red, 8 blue +Game 90: 2 red, 2 blue, 9 green; 1 red, 9 green; 7 green, 3 blue, 2 red; 4 blue, 2 red, 4 green +Game 91: 6 green, 4 red, 9 blue; 4 green, 4 red, 17 blue; 6 blue, 2 red, 4 green; 7 green, 2 red, 13 blue; 1 green, 13 blue, 1 red +Game 92: 4 green, 1 blue, 8 red; 7 green, 6 red; 13 red; 9 green; 6 red, 1 blue, 4 green; 2 red, 1 blue, 15 green +Game 93: 8 green, 8 red, 13 blue; 4 red, 10 green; 15 blue, 11 red; 14 green, 5 red, 6 blue; 12 red, 3 blue, 13 green; 9 red, 10 green, 6 blue +Game 94: 14 red, 10 green; 15 red; 4 red; 4 green, 7 red, 1 blue; 6 red, 5 green; 1 red, 2 green +Game 95: 1 blue, 11 red; 15 red, 1 blue, 3 green; 13 red, 2 blue, 3 green; 1 green, 1 blue +Game 96: 4 red, 4 blue, 4 green; 5 blue, 5 green, 4 red; 2 red, 8 blue; 16 red, 5 green, 13 blue +Game 97: 6 red, 13 green, 3 blue; 10 green, 4 blue; 3 red, 12 green, 4 blue; 3 red, 5 blue, 16 green; 3 red, 9 green, 1 blue +Game 98: 8 red, 12 green, 2 blue; 7 green, 8 red, 1 blue; 2 blue, 6 red, 3 green; 9 red, 1 blue, 4 green +Game 99: 6 blue, 11 red, 7 green; 9 red, 6 green, 1 blue; 9 red, 2 blue +Game 100: 1 red, 4 blue, 2 green; 6 red, 2 green, 11 blue; 1 red, 1 blue, 2 green; 1 red, 7 blue diff --git a/2023/day2/solve.py b/2023/day2/solve.py new file mode 100644 index 0000000..939b134 --- /dev/null +++ b/2023/day2/solve.py @@ -0,0 +1,24 @@ +def main(): + max_seen_colors = [] + id_sum = 0 + + with open("input", "r") as f: + for line in f: + current_game = {"red": 0, "green": 0, "blue": 0} + line_relevant = line.strip()[line.find(":") + 2:] + for grab in line_relevant.split("; "): + for items_saw in grab.split(", "): + count_and_color = items_saw.split(" ") + current_game[count_and_color[1]] = max(current_game[count_and_color[1]], int(count_and_color[0])) + + max_seen_colors.append(current_game) + + for ii, elem in enumerate(max_seen_colors): + if elem["red"] <= 12 and elem["green"] <= 13 and elem["blue"] <= 14: + id_sum += ii + 1 + + print(id_sum) + + +if __name__ == '__main__': + main() diff --git a/2023/day2/solve2.py b/2023/day2/solve2.py new file mode 100644 index 0000000..c79821a --- /dev/null +++ b/2023/day2/solve2.py @@ -0,0 +1,23 @@ +def main(): + max_seen_colors = [] + power_sum = 0 + + with open("input", "r") as f: + for line in f: + current_game = {"red": 0, "green": 0, "blue": 0} + line_relevant = line.strip()[line.find(":") + 2:] + for grab in line_relevant.split("; "): + for items_saw in grab.split(", "): + count_and_color = items_saw.split(" ") + current_game[count_and_color[1]] = max(current_game[count_and_color[1]], int(count_and_color[0])) + + max_seen_colors.append(current_game) + + for elem in max_seen_colors: + power_sum += elem["red"] * elem["green"] * elem["blue"] + + print(power_sum) + + +if __name__ == '__main__': + main() |