Autorské riešenie
Riešenie tejto úlohy spočíva v prechádzaní dvoch cyklov a ukladania vyhovujúcich párov do nového poľa, ktoré na konci vypíšeme. Veky mužov a žien zadávame na začiatku. Prechádzame poľom pánov postupne, kde si pán ktorý je v poradí vyberá z poľa dám. A to tak, že s každou dámou sa urobí rozdiel ich vekov v absolútnej hodnote. Dáma, s ktorou bol rozdiel vekov najmenší sa priradí k pánovi a vzniká tým vhodný pár. Pamätáme si pozíciu tejto dámy, aby sme ju mohli po vybratí vyradiť zo zoznamu dám. Pretože jedna dáma môže byť vybratá iba jeden krát. Páry, ktoré sme si ukladali do poľa párov na konci vypíšeme. ;Imagine
logo
viem poparuj :poleMuzi :poleZeny urobTu "vybranePary[] prePrvky "muz :poleMuzi[ urobTu "minimum 1000 prePrvky "zena :poleZeny[ ak (abs :muz - :zena < :minimum) [ urobTu "minimum abs :muz - :zena urobTu "vybranaZena :zena urobTu "poziciaVybranej pocitadlo ] ] urobTu "poleZeny bezPozicie :poziciaVybranej :poleZeny urobTu "vybranePary vlozPosledny (zoznam :muz :vybranaZena) :vybranePary ] vysledok :vybranePary koniec
Python
def poparuj(poleMuzi, poleZeny): vybranePary = [] for muz in poleMuzi: minimum = 1000 for zena in poleZeny: if abs(muz - zena) < minimum: minimum = abs(muz - zena) vybranaZena = zena poleZeny.remove(vybranaZena) vybranePary.append([muz, zena]) return vybranePary Vaše zaujímavé riešenia a najčastejšie chyby Najčasteším problémom bolo zlé vypisovanie párov. Dámy neboli často krát ostraňované správne alebo vôbec ostraňované. Najväčším problémom bolo identifikovanie indexu/pozície dámy v zozname. Mnoho riešiteľov používalo veľa globálnych premenných, ktoré neboli potrebné a tam sa to zrejme skomplikovalo. Prístup ku riešeniu bol takmer vždy správny, veľa z vás ošetrilo aj výnimky a to veľmi pekným a čitateľným spôsobom. Celkovo ale hodnotím, že riešenia boli prevažne správne. Prekvapilo ma mnoho prístupov akými ste sa rozhodli túto úlohu riešiť, každý bol niečím zaujímavý a nakoniec viedol k výsledku. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |