1
0
Fork 0

Compare commits

...

2 Commits

Author SHA1 Message Date
chylex aa62e04926
Add 2021 - Day 8 - Part 1 2021-12-14 20:37:37 +01:00
chylex 422740ed39
Add 2021 - Day 7 - Part 2 2021-12-14 13:46:33 +01:00
5 changed files with 257 additions and 2 deletions

View File

@ -6,10 +6,28 @@ fun main() {
val p1 = originalPositions.minOrNull() ?: return
val p2 = originalPositions.maxOrNull() ?: return
val candidates = p1..p2
val cheapestFuel = (p1..p2).minOf { p ->
part1(originalPositions, candidates)
part2(originalPositions, candidates)
}
fun part1(originalPositions: IntArray, candidates: IntRange) {
val cheapestFuel = candidates.minOf { p ->
originalPositions.sumOf { abs(it - p) }
}
println("Cheapest fuel: $cheapestFuel")
println("Cheapest fuel at constant fuel usage: $cheapestFuel")
}
fun part2(originalPositions: IntArray, candidates: IntRange) {
val cheapestFuel = candidates.minOf { p1 ->
originalPositions.sumOf { p2 ->
abs(p2 - p1).let { steps ->
(steps * (steps + 1)) / 2
}
}
}
println("Cheapest fuel at polynomial fuel usage: $cheapestFuel")
}

200
2021/08/input/1.txt Normal file
View File

@ -0,0 +1,200 @@
cdbga acbde eacdfbg adbgf gdebcf bcg decabf cg ebdgac egca | geac ceag faedcb cg
edbcfag ebdca ebgad dagbef cfbed adcg dcgeab ac cae cgabef | gacd ac dgac ebdfc
gceafb fcabedg ebfd bd ebacf bafcde daecbg dabfc abd acfgd | adb fagdc bd agfbec
abd cebd bd gcbaf dcafb dface ecgfbda ecdfba fdegca dbafeg | dbecfag bd decb dbgfcea
ecdagfb eb egfcb gcdbfa dcfeg aecb fabcg afebgd ebg agecbf | bge be abcfge bfedacg
dbcf gfc fcbdaeg cf bgfced begacd dbgec gdfea cfdeg bafgce | egcfdb ebdgc gadbcfe bedfacg
efbda dbf fb fegdabc dagbce fcade dfbceg gbadfe abdge gbfa | bafg gbaf bf fb
afbegc bgcfde dc edagf fcadgb gacbf dgc fdagc dgebfca dcab | dc dcg bgcfa adbcfg
gfced ebcg fdgceab gdfbe dfcbea ce dfegba dce fbgecd dcgaf | bceg fbegad ecagbfd dfgec
agbec dgef gfbec ef gfadbc cfgdbe gedfcba cefbda cdfgb bef | bdeafgc gcbdf febdagc fgde
egabc dcgbef efdbac fdaceg af eacbf cagedfb abdf fac bfdce | bedcgaf dabf gfbdaec afebc
dbcf efgdca gacdfb bc abfcg dafcbge gbeaf bac gdecba dgfca | gcfab dbgace abcfg dbegfca
aecbgd bgadf bgdcfea bfgdea egaf gfd eabdg gf adbcf cbgfde | fgea fgd dfg feag
ecdab agcdb adfcegb cadgeb acfdg fgdcbe gbd bg aegb befacd | bgecdaf bgfedca ebdac dacbeg
acfge bcfaedg fb adegfb bcgfae ecfadg fbac fbe ecbfg dgbce | efgbac bfe afegc cbedg
afgec gefbd edcb edcabgf dcg cdfebg fgbade gabfcd edcgf cd | fagdbe gdcbfe gecaf egfac
ce ebadg ebc agfcb cdagbe degbfa edcabf dcge gebac egadbcf | ec afebdg gefbad ec
ebagcf db bfegad gadfb eabfg gebd edbafc dfcgaeb bdf dfcga | cdgaf db adbfegc egdb
gefbcd fgcbd fca gcdfea agfb ecafgdb af dabfc acbde gbfdca | dgbefca bgedcf debfcg gfaebdc
debcf degcfa fdgaeb gcdbea cbga cdbeg decga ebg gb dabcfeg | abgecd bg gcbade baefdgc
gdcbe ga gcae cgdba fgbade fcbedag abfcd gba dacgbe fdbcge | abg dabcg bcfad bga
dagef geab agdfbe dceaf gcdbef egbdfca fabgd eg egf bcgfad | dgafb ge gfdae aedfg
afbecdg cebga abdcge eadcb gbe dbcg befadc fcaeg bg efbdga | gb bfcdae bg bge
dagbcf debfgc aegc bag abgde dbacge dfaebcg bdecg ag adfbe | ga gcaefdb gba bdgaec
abdecf fcdeb dfca bdecg fcb cf febad gbafec dgfbcea gadfeb | dcbfe cfb adfc adfc
dfgcbe dfcbgae dfagb geabdc cfg cgdbf cbfe bdcge cf gdeafc | fdaceg bfec fcbe fdgbc
degfbc ab cfbgade eabc dcbgfa gab cbdega eagdf cegbd abegd | ab dfecbag ba ab
efgac dceagbf faebc efg fg gdeacf gacdeb gbdfea gfdc dagce | fg efacg becaf gfcaebd
adgb befgcd ceafg ebcafd agdfbe fageb gbdfe ba edafbgc eba | ecdgfb befdga badgef bea
fdcabe bdfaecg dage acefg ae fgcba egdcf eaf adgcfe gbcfde | fdceg eaf aef bfadecg
abgdc da gadbec gdbcf dag egbac dcea becfga gafebd dcbgafe | acgbde gdfabe dga dag
cd acd eabdf gadfebc cdaegf beagc bfcd gbedaf bdace bdceaf | bdfc debfac cad cda
geabcf fcg fcaeb aefcgd gfbed defcgab gc gcefb cdeabf acbg | gc dgacef gc geadcf
cbedgf febad faec bfdca ebf ef daefbgc gbead gfcbad eafcdb | gfadbc fe fadcb ef
egfbac fbadec cged dbgfec fde ed abfgd becgf acdegbf efdgb | fde cagfbde ecdg dcge
gbadf bdagef cdgb dbgcaf bc cedfa ebgadcf begfca cab dafbc | bcdfga cfaed cgbd dfcab
fcgdba abdef dbfce efc fbeacdg gedc gbfced gacbef ce fgcdb | afedb fec fce dbfcge
bef cfae adefbc afdgebc fabed fcebdg fdbac fbdgac ef gedab | gfdabec afce fe cbgadf
gabe ceg fgace fbedacg ebafc ge ebgfca gdbcfe gcadf cabfde | dacefb gfcdbe cge becgdf
ebgcad dcagfeb dacg gfabe gbedcf gaedb acbde bcefda dbg dg | gdcbea bdg agedb becdfag
ebfag agdebcf gedcaf cefga gdcbaf efdba acebfg bg fbg cbeg | bgf gceb gfb ebcg
bcaedg ecf dgfe cegad caefg gdbaecf ef cgedfa dfecab bfacg | edcag geacd fec edgf
facdeg gb abfegd eadfg bgfd bcead ebg cebagf gabed gbcafed | dbagfe fgdb aegfd fbdg
aedgcb cdg fgaced afbdg fagec dbagfce egbacf decf gafdc cd | dc gcd cd cgefba
ecbf bcadf afecbd be bed gacfdb gdbeaf cbdea becdgaf aedcg | cdaeg bde bfec dbefca
feacg cfgebd dfaceg adbcg cegfab bagec bedfgac befa eb geb | acbfeg be ceafg fbae
cdgbfa cbfea efga becdf caf gbcaed bgefca af cegdfba agbec | fage fa cfa fgcbea
bdagc fecdb bfeacd gaedfb gfcdbe afd af ecaf edcafbg afdbc | fda fegacbd dgabc fabcd
gfecba fbaecd bagf gcefa gac ag egbacdf dcabeg fecgd efabc | edbcag efacg gafb gacfbe
aecdfb adegf gbcdaf egfdc gfa eagb ga gbaefd gfedabc fadbe | gfedc cdafbe edagcbf edgbcfa
eacbd fbcegad efdcb eafbdg eabcdg cad ca gcbadf gdbae gcea | dac dbegfca cdbea dca
beg bfadeg bfgcde egdacbf ebagf caefg eadb abdgf eb abfgdc | bge eabd dbfgce edab
fadceb cef edac ec efabcg fcdbg befda bgdefac befdga ecbfd | aecd fgeacdb ce ecbadfg
fdagbc fcgebda dcae dgceb abged dc cdb gcebf aefdgb dcbaeg | afdbgce bdgcea ceda efbgcad
dcbage bdefag cafgd cbef bdf cefadb dbcfa bf ebadfcg bcead | bgeacd bafdc fb efcb
fbgac fbg abfcdg gefdac bg efgbda dbgc dagcf bcefgad cfbae | gb afbdcg ebgcadf dgafebc
gedfb fbcea gbeaf gcfeba bdgceaf fedagc gae adcebf ga acbg | ga cdabfe ag cfeab
aefcd efbadc bedc fcgbda deafb adgcfe fdb efbag gafdebc bd | bedgcaf bd bcadfg cebd
adfcge gfadc dcfab gecd fbaedg adegfbc cefag baecgf gd fgd | cdge adfcb cgde gd
ef aef adcfe cdfbga bcfe bcfeda dabfc fagcdbe bedfag adceg | bfdca faecbdg fe dgfabe
gcefdb acgeb dfage dfcegab gcdea edc gdaebf adfgce dc dacf | afdgbe cafdegb dbgcaef aefdgb
afebd dbeag efacbdg bdeafc gfdcab fdge gad ecbga gd adegfb | dga badfgc bedag dag
agfdce ecagdb fdbac fdeca egafd ce gbacfed begfad efgc aec | ecfg ce ce daegbfc
cabged fabge afd facbgd cdgba cfdg fd baecdf bfdgeca gbafd | efcadb dfcg fcadebg cfeadgb
gabfc aefdb adc fcdbae cgdebaf cefgda cbed bgfeda acdbf cd | daebfg dgceaf cd cd
acgbde cdabgfe gae bfcgda badcg baed gbeca cgfeb ecdfga ae | aefdcg bdae eag cgbafde
bfcega fagdc egfacdb efbd dfebag adegb dagfe ef efg begacd | debf cadgf abgecf deafg
gd gdabc gdfa gbd gbdacf cdebafg fcdebg dbcfea agbec cfdba | bdg befdgc acbeg dagf
gbce gef edgcbf cefdga fgabd eg befgd bacedf fdcbe dgcefab | gfe egf cgeb edfcb
eb fcdgb acfge edgcabf fbcaed bfcdge bdge fcbge fbdcga ceb | ecb fcedbag ecb efgbdc
gcea caf fcdebga ac cbdafe gdfbec egfcda dcagf dbafg fgecd | facgd fbcdea ebcgfd decgf
fbca adbcef becgd bcdae acdfgeb cfgdae ab gaebdf abe fadce | fdagec fcebad daceb ab
ca afgbe fdeagcb fabdge gbfac bcgdf bagcef afc dcgafe acbe | ca dgbfc bace afc
dce fgbcead fgecad fedcab cgae febdg fbacgd dfacg egdfc ec | cbegfad ecga efcdg gfcbad
dg gcedbf gdb febdc adbcfe cbgae gfde dgcbe gdacbf bcgafde | fbceda gd cbefad cebagdf
bdg egdfab cgadf adbefc cadbe aedgcb gbacd gcfbdea gb gebc | gbd cbge gceabd gfacd
edgfba cfbgae dfbgace egcfbd efdc cf cgf gdebf fdbgc cdbag | fdgbea cadgb dfeabgc fc
ce bfcdae egfabd cef begc gdebcfa abfeg cfbgae afdgc agcfe | gfabed fec agcbef fce
acfe ecg cdaebg bfgde gbcfe agcfb cfdagb ce agecfb cafgedb | cge face cge fcebga
gbeda baegf dgb dg edacbg afgcdb cdfbae afcdgeb dgce cadeb | dbg debacf bgd edabc
afcdgb fbdceg edcgfa fbc gfbac cbaeg bf gfdca bfad fbcgeda | gecdabf cfb dabf acgfd
af gfcea afg fbgecd bgcafed bgeca gcadef faed cgfbda cgfed | facedg fead edgcaf fdcabg
fcadbeg fag egcfab efadg fbdgce dgacef gedab afdc gefcd af | adgeb gaf afcd afdc
deacgbf bedgaf gbdf fdeba bef bcfage edbca bf fegad dacegf | fdacge edfag cdefga febgac
bafecg cfdba dagcbe aeb cadeg fagecbd deafgc gdbe debac be | ebadgc aeb eb eab
fgad gbadce abd gfedbc cfgeadb ebcaf abdfc fbcdg ad fgdcab | da fdag cedgfb gcbdef
dfcbe cf cef fdgc cdbeg cfdgbe cegdab fgabecd agfcbe bedfa | cef fdgc adfecgb adcfgeb
efcdg afbd bdcafg bfcaedg bdc db bdgaec caegfb bdgcf gfcba | gfdbc db fagcb dcb
bdegfc gd gfacb fcegba fgd cfagd efdbacg edacf adgfbc gbda | edacf gabd gd gd
dfb caebd dfabe abegf fadbeg agcfbe cbadgf df fdaecgb dfeg | bgcdaf fegd df gcbeaf
acfdbe cfd fbeac cd acde gbcadf dgacfbe egfdb fceabg bcefd | eacd dcf gebfd dc
ebg cedfag gb feagd gfdbce begcdaf fagb bdaeg dabec dbfage | fgba bgeadf bedgfa gabf
gdafcbe eag daebf aefdg fecgd ga fegacd cagf debcfg gedacb | cdefga defcg ga gdaecf
dgea gcaebf caefgdb edbcga ced ed cabdef gcabe gdcfb gedcb | daegcfb gdcbf cfeadgb de
cdfage gcbfda cabdfe fcb bf deafbcg aebf bfdec fcead dgebc | fcdageb abdfcge afecgdb eafdgcb
cfgd cg acg bdcagf agfebd acgdb bcdae abgefc gabfd efabgdc | gbcda cbdgefa agc bgdfa
bfcged dbgcf aebcfg cafdebg bcg acdfb gc edgc edfgb aebdfg | cbg cg cbagefd agfebdc
fecdb bcfead bcfda ebacfg fba ab cdabfge dabe adgcf efgdcb | bdea dbfac ba abde
adfgb begc gecfdb ebdafc fbe eb beagcfd efcgad ecfgd gdfbe | bceafd fbe gbfed ebf
gaefdc gdafebc dfba da fgdbe ead bgade agbec edfgab fcegdb | cgbefd ad ead agbec
dceafg fceb afc bcefdag cgdba fcbga eabfcg fc gfaeb ebafdg | debgaf ecbf efbc agbfce
adecgbf aecdbg cgdb aegdb ged gd afdbe fecdag bcefag cbaeg | dg eacgfbd edg gd
dgceb cgafdb cbgea ecgdaf cgaefbd ae gbacf age acegbf ebfa | cgabf faeb fbacg abef
gfec dgbfcae gedcb efb efcdbg ceadbg fe decfb fbgaed dfcab | efb ceabgfd defbga cbdge
efb gdcafe acfbd afcge bgfdec be fcbage gbea bdgecfa ecabf | abeg bef be eb
gbcd egdafc bgcdfe gbf gfedc gfbce faebc gafdeb gacebfd gb | bgcd bgfdae gb bdegfa
cbegf ga fgad agcef aecdgf cag edgbca gabecdf eafcd cefdab | fgcabed ga cga gcfae
badeg ecfdbag gf gaf bfedag bgfad gfeb agecdb facbd cfeagd | agf egdba dbacf gf
abe acdfegb beadgc bcdga caedb dgeb ceabgf be dbgfca cfeda | aeb feabcg eb gdfbac
bcfgd cgaedfb cfegab gd cafbd dgfaeb gecd dfg fbdceg ecbgf | gfceab efgabc cdeg bcgfade
da agcfb edfa egadfbc gcdeaf cegdba agfcd ecdfg gcdfeb gda | adfe fedcgba aedf cfbdgea
cdeabf bcaedgf dcfab bfcag bgdc cegfa gedbfa bg dfcgab gba | gab fgbac fabcd cfeagdb
gad gd daecb bcgdaf adegb cegd eabgf agcdbfe agcebd edcafb | dg edgc dfagcb cged
fbecdg efbagc gacfbd bdfe fe cef fceadgb dgcae cdefg cdfbg | facbeg ebcfgd cadgbf cfbgae
abdce gd gebfcd cadgb gcd bgfeadc adeg adbfec facbg gedbac | gcd dbgaec ebdgca dacbe
gfdcbe adgbfc fedga af bdaeg efca eabfgcd fag fcdge dfecag | cegfbd ceabgdf agf cfae
cf cafbde agfdb cfb bdgcae cebafg acbde bfcda cefd febgdac | gebfacd efabcdg adbcf gdebfac
befcgd aefcbgd fdcg edf adbecg febdc degabf dcgbe fd eafbc | fde edf fcdg df
adef bgdacf caf fgbec fa abgecd acdbe bfeca agbfecd dcbefa | acdeb edaf fdea cbfedag
ceafbg gbacd egacd ea fcdge dabe age cgbdae cfgbad cegbdfa | gdcbea adeb cebgfda dagfbc
bcdeafg gbdafc ed def bfaed dafbg bdfgae bdge fbcea edagfc | dbfeag cadefg de dfe
ebgcdf acefgb ca cfdab cab adcbfe debacfg dfabg adec fecbd | bacfd cba bfgda baegfcd
gceaf afdeg cfaegbd dabge gdf gacfed gaecbf fcgbde fd adcf | fecdgb fd fd dgf
bdfgac bagdc af fadb gfa efgdc bfeacdg bfacge acgdf dgbaec | dgcef aegcbd afg gfedc
aedfbc abdg bceda baegcd cgdefb gb efcga begac efdbcga gbe | aegdcb dbface gedfbc gbe
gdacef deacg fa gdfbcea cfgea bgecf fag cedabg gadbfc dfea | eagcd gbdcaf fga fabcdg
gac afbgc acebf bgdfa gc fbadgce gcefad cgdb dbegaf cabfgd | cg gc bacgdf acg
ebcdg bda dgfacb agebdfc cbdea cbagef da cabdef ebafc fead | ad cgbde cdbeg adef
ed adbfg gbceda gde bgaedfc dgfeb abfcge cbfgde fced begfc | gbfda cgaedfb egcfba begcfd
dfc abcfed cbfaeg adfb cedbf fd bfcadeg cabfe decbg edgcaf | cbefga efcdb gfaecb gceabf
bdegf dbafeg db efagb fcbage bgda decfbag afcebd dbe fedgc | adbefg cdfge ebd gfabe
ag fbagcd fgda dacgb dcebaf abg bcfad efbdagc fecgba ebdcg | gab gcedfba dgecafb fabedc
ebagc bdfaeg ea adec bedcg bae bfgac cdaegb gedcbf dgbacef | cefgbd ea cbdefg bgdec
ecbfd egdfac efagc bcgaefd agcd gfeabd dg cfged gfaebc fgd | acdg dfceb cefadg badfeg
cdfeag cgfea fdgc cf gefdba gecbadf fca cebga gdafe bcfdea | degfbca fcdg bdagfe acf
be fcebga dgefab gdabc egabc febadcg gfcaed ecfb efagc egb | gaefdbc fegadb bfce fceadg
dbagf bcdgfa dbcfg bgaefd bfdaec bcd dc egabfdc gfcbe cdag | gcad acgd dc dbgfa
ecadg cbgad adefbg cdgeba gae gdcabf dfcge ae bace cdbgeaf | ae dagce ebdafgc gacdbf
gdecaf cebdfag fbega bgcfde dcbf gdb cegfd gacdeb db bgdfe | bdg db gbaef dfgbaec
edgacfb cgdfb agdfc dfbeca fdegca ag eagc efdagb agd cdeaf | ecafd dag adg eagc
fg aedcbf bfdac fdgac acdfbg cedga bcdgef gfd fbga acgdbfe | efcdbg dcabegf dgabfce bfadc
efbag cgafb gfdeab eacfdg cbagfe cg gfc gceb dafecgb fbadc | gcf gbfac fbgae gebfa
eacfd dbfaeg cbdgfa badgf efb dfeba fgceadb eb edbg efgbca | ebafgc be fdeab bfe
dbeac bcgfade debafc fdca efcabg gbead bca fdceb gefcbd ac | abc acdbe edagfbc ac
faecd gcbadef fdagc cfg fcbdeg abefgd gacb cdfbga fgbad gc | bcdefag gc gcf dfcbag
dgc dg cbagfe cdgbaf adecgb bacedfg cbaeg bcdeg cefdb dage | gdae cadbge cdg gdc
gfeacb begafcd fgbacd cbafd fbcaed cfead eaf ebad cdfeg ea | cgbfaed dacfebg gcdef cgedf
acgfebd fedbag dbceg badgec gcda efcbg dce bdaefc dc bdage | aebdfg abdeg edc gcad
bafcge bgade gafdb dafbce ebd fadcebg eagcb agcdbe ed gdec | cegbaf cgebda ed edbag
bgfadc bdea fegcbda fgdceb gceaf cabdge gcdeb gda cdgea da | adg edabfgc dfacgb ecfag
efbgdac fceag fdegba gadfbc debc be dcgbea cagbe abgdc egb | dcbe eb efgcbad cgeaf
dabcef dacgfb fgcbe efd ed ecfbgda cdegf dgfeca daeg gfcda | cfgdea gdabcf de de
gcdb ebagfdc fcdag bdfaeg badcgf gdeafc caebf gb fgbac abg | fcagdbe gb bgdc afdgc
acdgf beda gdb bfgade gbfea efbcgd fgdab cgefdba db cfgeab | bfaedg afgdb bdg bd
cgaef eb abgec fbgadc gebd becdga faedbc aeb bdagc dgecfba | dcfabg gcfea bfeacd eb
gbcad fgceab fcaeb faedcb dfbe cdafb cegadbf cagdef dfa df | fgecad efacbd egfcda defb
gdcaef ebafdc bgda abfgecd ebfda ag gae gfdbae begcf gfeba | agbef ga feabg ega
aebcfg dgafc ba dbfge afbdg cabdefg dceagf abg dcba dfcgab | cbefgda dfgeb cgdfae bgafce
ed fcegba gdae adbcef fdcbg gefdbca egfca afdceg dec ecdfg | ecd gfbdc bcfgd dgfce
agdc ecdbagf gbcfa gfcbad dcbefg adfgb ecfbga dbg dbefa gd | bdg facbdeg bdg gdcbaf
db gfdeb ebd adbefgc fgced dfcgae bcegad egcfbd afgbe cdfb | aefcdg fcdgbae egdcf cgeabd
egcfa cefdag cb cgbfea bfca ebdgcf cbaeg eadbg gcb ecdfabg | ceagf cedbfg bacf bfac
gfadcb aedc febcg cd dfecga fcd fegcd gefbda eadfg bdcfeag | aedfg fgaed cd fbecg
adefb gaecf aefdbgc acfdeb cdabgf gb gbed bdgefa bga efabg | dbfae dgabcef abg cbgfda
degcfb adebgc afegdbc ca dfgae acgb degac cdfaeb eac debcg | bacged gadef gbac gbecadf
abgcdfe ace fcaeg fgbac dafe deagcb afgecd ea bcgdfe gdcfe | ea gaebdc ecafdg aefd
cafedbg cdbafe dcfegb abd dfcab gabdef cabe efdbc ba gfcad | ba ebac bad aefgcdb
edbgfa bacdf adfbce caeb efcdbag cebdf bdgfac eb cegfd efb | ebf bfeadc eb bfdeac
cbadfe fcg cbafe fg gbecd fdacbg efgbc fecabg beadgcf efga | abdfceg ecbdg fgceb gf
gbdfa gfceda def befg caebd bdfea fe bfadcg dbfgae dabgcef | dcbea fe efgb bcdea
bacgd gade cdebgf badgce da cedbg dab bfgac egdacfb debfca | gafbced abefcgd da deag
acbdfg fd aecdfgb ecadf dgcbae cedfag aecdg abefc egfd daf | afceb dfa fgde aefcb
cdgafb dcafg afegc gabd bdefcg cgd gfaebdc fbdeac gd cafdb | dg dg gcd dgacfb
geafdc gecfb gafcd gbadfec db bgfeda gbdfc abdc fdcgab bdf | eagfdb bgaefd db bdf
acdf adfge gefcab defcga df fgcae fed bcafdge abdge cgdbef | fd fd gfbaecd facd
cd cebfd defacg fcd gefcdab abdef bceafd abdc befgc dfagbe | bdca dfecb feacdg cfd
gadef fedc eafgb fd ecadg cdabfg fdg gceadb cedgfa edbgafc | bdcagf df egacd bgaecdf
dacbefg ebdcgf cegfda fdcga bfc bfga abcde bcgadf bf bdcfa | fgba ceafgd bf defbcg
ac efcbd gedfca ace febcad cabde gcdbef bgade bdegacf cfab | befcd acbf ceagbfd abdecgf
dbfagc abdce fgea gab ceagb fbcega gecdfba ag gfecb efcgbd | cgadfb aefgbc gaebfc efag
cebfd bdfeag fgc edgaf gc dgca cdebafg gcfde geafcd feacbg | fcgde gcdeafb adcg gfdaceb
gcebadf cebdag egcfda acfd cdegf fgecba cf dgeac fcg fdgeb | decfga fdac egabcf ecabdg
fgabc egbfcd eaf gead dfegb edgcbaf agfdeb acbdfe ae afgeb | gdebf dgae gebdf efa
gcadbe bacgd gcbafed gdcef aebfgd age aecgd cabe dfbgac ae | dcgba bace age acbe
fgdca gcabfd dfea gcefa ecdgaf adfbgce cae gecabd cgebf ae | ae fcegb acgdebf acbedg
acbdgfe gdcfa aecfg abfdc gd fgdb efbacd gfdbac gda bcedag | dga fgdb bagdcf gd
fg dagfcb gfeac cegba dfceab adfgbec fged gfacde fcdae fcg | dfge fgc acgef gcf
agfcbd cbagef edbfg ecbgafd bagec fageb cabdeg fa ecaf abf | efagb debgf af caebgf
afecdg decgfb geabd bgd afbd bd caegb fgacbed feagd gfaedb | gcafed cebfdg fadb cfaedg
cedfb dgfeab ecgba fcdg fgb befgc fdaebc gfebcd fg adcgfbe | fdgc afbdcge cgdbef cefbg
defc gebcf cgdbfa fc cegab bfdeg dgcfeb fgc bgadfe dagcfeb | fcde bedgf gfc gfdbea
badceg bea gbafc dafge cfbdga geafcb cfbe gabfe eb gfcdabe | eba bfce fbec eafcgb
fbcedg gf aedcg decbf gfeabd efg gbcf faebcd eadbgfc efdcg | fge dgcbef fge cfgb
cbdeg bfca ca bgefa aebgc fcgaed gcfbea gac cfegabd defgba | gcaeb gebfda bgedfca ca
ecfd cabdg bcfeda cdeab ed eafbgc dae gaebfd ceafb cfgdaeb | cefadb befacgd ecfd gbfaced
cgdea gcfabe afecgbd becgdf eb abgce abef bce fcgab dcbfga | bgfdce egcfbd ebcfgd ebcdafg
fcbed fbged fdag gd egdfbac gacdeb egbaf dge cbeagf fdbgea | deg dg dacegb cdgabe
faegcbd aed gfdba fdce gfacde ed adfge dcegba acgebf fcaeg | aedfg cebagf de de
dbcega geabf gcebfd deg cfbade dg debgf dgfc dcfbe ebadfcg | cdfaeb deg gfabe gcbedf
bgecd bafg efdab ebdcaf edfgab gf dfg degbf fcgeadb aefgcd | gabf bdgfe fbdae cbedfa

35
2021/08/main.kt Normal file
View File

@ -0,0 +1,35 @@
import java.io.File
fun main() {
val records = File("input/1.txt").readLines().map { line ->
line.split(" | ", limit = 2).map { it.split(' ') }.let { Record(it[0], it[1]) }
}
val simpleDigitCount = records.sumOf { r -> r.output.count { it.length in UNIQUE_SEGMENT_COUNT_TO_DIGITS } }
println("Total appearances of 1,4,7,8: $simpleDigitCount")
}
private data class Record(val patterns: List<String>, val output: List<String>)
private val DIGIT_TO_SEGMENT_COUNT = mapOf(
0 to 6,
1 to 2,
2 to 5,
3 to 5,
4 to 4,
5 to 5,
6 to 6,
7 to 3,
8 to 7,
9 to 6,
)
@Suppress("ConvertLambdaToReference")
private val SEGMENT_COUNT_TO_DIGITS = DIGIT_TO_SEGMENT_COUNT
.entries
.groupBy { it.value }
.mapValues { it.value.map { e -> e.key } }
private val UNIQUE_SEGMENT_COUNT_TO_DIGITS = SEGMENT_COUNT_TO_DIGITS
.filterValues { it.size == 1 }
.mapValues { it.value.single() }

View File

@ -37,3 +37,4 @@ The versions should not matter, but I used Visual Studio 2019 with `MSVC v142 (1
| 2021 | 05 | Kotlin |
| 2021 | 06 | Kotlin |
| 2021 | 07 | Kotlin |
| 2021 | 08 | Kotlin |

View File

@ -50,4 +50,5 @@ sourceSets {
make(2021, 5)
make(2021, 6)
make(2021, 7)
make(2021, 8)
}