AoC 2022, 22. päev
Ülesanne
Siin: https://adventofcode.com/2022/day/22
Ahvid loevad kaarti, aga ahvid on ikka ahvid
Esimene osa
Ei ole liiga keeruline, kaardista ülesande sisselugemise ajal vastakuti jäävad positsioonid (või tuvasta nad lahendamise käigus) ja lahendus tuleb peaaegu tasuta kätte.
Teine osa
Siin tuleb teada, mismood näeb välja kuubi pinnalaotus, õigemini see, kuidas kuup pinnalaotuseks lõigatakse.
Nimelt on selline lõige mööda kuubi servi alati puu, kahe kuni nelja lehega. Kuubi “kokkuõmblemine” ehk pinnalaotuse kokkupuutuvate servade tuvastamist tuleb alustada puu lehtedest, mis pinnalaotusel väljenduvad sisenurkadena. Kahe sisenurgaga pinnalaotuste puhul (kolm võimalikust kaheksast) on võimalik jalutada ühest puu lehest teise ja kokkuõmblemine ühe käiguga teha, ülejäänud juhtudel tuleb alustada igast sisenurgast eraldi, arvestades, et omavahel saab kokku puutuda maksimaalselt üks serv iga küljepaari kohta.
Ehk siis on vaja:
- tuvastada kõik pinnalaotuse sisenurgad (lihtne, sest kuubi serva pikkus on ülesande tekstiga fikseeritud),
- leida nende abil kokkupuutuvad pinnalaotuse servapunktid,
- ja kui esimene ülesanne oli lahendatud nii, et kokkupuutuvad servapunktid olid eelnevalt kaardistatud, siis saab teise ülesande täpselt samamoodi lahendada, kasutades lihtsalt teist seosetabelit.
Lahendus
Lahendus: https://github.com/fazz/aoc/blob/master/aoc2022/day22.py