Ezt hogy csináljam meg?
Egy étteremben minden nap A és B menü közül válaszhatunk. Megkapjuk az étterem menüjét N napra előre (maximum egy évre előre). Mennyi a legkisebb összeg amit fizetnünk kell ha minden nap enni akarunk de ugyanazt a menüt maximum 2 egymást követő napon választhatjuk?
A menüt egy Nx2-es 2D tömbként kapom meg ahol a sorok a napok a két oszlop pedig az A és B menü árai. Pl:
4 6
3 7
2 8
6 1
Itt a megoldás 6 + 3 + 2 + 1 = 12.
(4 + 3 + 2 + 1 nem lehet mert úgy 3 egymást követő napon választanánk az A menüt)
Ezt csináltam:
De így nem jó mert egyrészt nem mindig a legkisebbet kéne választani csak nem tudom hogy döntsem el. Másrészt nem tudom hogy figyeljem hogy választottam-e már 2x egymás után ugyanazt.
Jónak tűnik csak már 40 méretű tömbnél is másodpercekig fut. 50-nel is kipróbáltam és egy perc után le kellett állítanom.
És elvileg 365 is lehet a tömb mérete.
Mindenesetre kiindulásnak jó, köszi!
De nem értem miért kell dönteni?
"Mennyi a legkisebb összeg amit fizetnünk kell h"
"De így nem jó mert egyrészt nem mindig a legkisebbet kéne választani "
Akkor most a legkisebbet kell vagy sem? :D ...
Amúgy meg tök egyszerű. Pár sor. Tényleg csak azt kell figyelni, hogy az előző és az előző mi volt. Ezt index alapján tudod.
A visszalépéses keresés nem az hogy végig próbálok minden lehetséges lépést? Mindig 2 választás van és 365 méretű lehet a tömb. Az így 2^365 művelet lenne minimum ha jól gondolom. Szerintem soha nem futna le.
De végülis egy próbát megér.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!