Programozó versenyek

Magas szintű programozási nyelvek 2, 2018. január 2., K13 ZH

2018. január 2. 13:00 – 2018. január 2. 14:50

Kirakós kártyajáték (Java)

Írjon programot, amely a standard bemenet soraiból egy magyarkártya-pakli lapjait olvassa be, soronként egyet-egyet! A kártyalapok színeit a P (piros), T (tök), M (makk), Z (zöld) betűkkel, értékeit a 7 (hetes), 8 (nyolcas), 9 (kilences), 10 (tízes), U (alsó), O (felső, nagy O betű), K (király) és A (ász) számokkal és betűkkel jelöljük.

A bemenet első sorából olvasott kártyalap lesz a kezdő lap, ezt a lapot helyezzük az asztalra, és minden ezután lerakott lapot erre a lapra teszünk rá, egy halmot építve így. A további kártyákat a beolvasás sorrendjében próbáljuk meg a halom legfelső lapjához illeszteni. Egy lap akkor illeszthető a halom tetején lévőhöz, ha vagy a színe, vagy az értéke megegyezik azéval (de mindkettő egyszerre nem egyezhet meg vele). Amennyiben az illesztés sikeres, a vizsgált lapot lerakjuk a halom tetejére, innentől kezdve ő lesz a halom legfelső lapja. Ha nem lehet a soron következő lapot a halom tetején lévőhöz illeszteni, akkor ez a lap a nyakunkon marad, ezzel a későbbiekben már nem tudunk mit kezdeni. Tevékenységünket mindaddig folytatjuk, míg az összes beolvasott kártyalapot végig nem néztük.

A programja írja a standard kimenetre azoknak a kártyalapoknak a számát, amelyek a nyakunkon maradtak, azaz amelyeket a pakli végignézése során nem lehetett hozzáilleszteni a fenti szabályok szerint a halom tetején lévő laphoz! Ne felejtse el a számot tartalmazó sort soremelés karakterrel zárni!

Példa bemenet

  1. P 8
  2. T 10
  3. Z A
  4. Z 8
  5. Z 9
  6. M K
  7. M 9
  8. T O
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 4
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.