AoC 2023, 7. päev
Ülesanne
Siin: https://adventofcode.com/2023/day/7
Lahendus
Kaartidele järjekorra andmiseks ühtegi võluvitsa ei ole: tuleb nad lihtsalt programmikoodi sellises järjekorras kirja panna, nagu ülesanne ette näeb. Seda ka teises osas, kus järjekord on teistsugune.
Esimese poole lahendamine on Pythonis üsna trikkideta: tuleb realiseerida ülesandekohane komparaatorfunktsioon ning käte list selle abil õigesse järjekorda sorteerida.
Teise poolega on natuke keerulisem, kuivõrd komparaator peab valima mitme võimaliku J
asenduse vahel. Küll aga tuleb tähele panna, et J
-i on mõtet asendada ainult selliste kaartidega, mis on juba käes olemas: sellised asendused annavad alati tugevama tulemuse kui asendamine mõne kaardiga väljastpoolt.
Esimene ja teise poole vahel koodikorduste vältimiseks on minul compare()
funktsioon parametriseeritud käe tuvastamise funktsiooniga (kind
ja kind2
), millest kumbki sisaldab konkreetse ülesandepoole-spetsiifilist käe tuvastamise algoritmi.
Lahenduskäik: https://github.com/fazz/aoc/blob/master/aoc2023/day07.py