Menu
Coddy logo textTech

Cosa comprare

Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 86 di 86.

challenge icon

Sfida

Facile
Scrivi una funzione whatToBuy che accetta itemNames, itemPrices e budget e restituisce un array di nomi di articoli acquistabili entro il budget.

Esamina gli articoli nell’ordine in cui compaiono. Per ciascun articolo, controlla se aggiungendo il suo prezzo al totale corrente si resta entro il budget. In tal caso, aggiungi il nome dell’articolo alla lista della spesa e aggiorna il totale. Se un articolo supererebbe il budget, saltalo e continua a controllare gli articoli rimanenti.

Logica:

  1. Parti da un totale corrente pari a 0.0 e da un array dei risultati vuoto
  2. Esamina ogni articolo in base al suo indice
  3. Se il totale corrente più il prezzo dell’articolo attuale è minore o uguale al budget, aggiungi il nome dell’articolo al risultato e aggiorna il totale corrente
  4. Se aggiungere l’articolo supererebbe il budget, saltalo e passa all’articolo successivo
  5. Restituisci l’array dei nomi degli articoli acquistabili

Parametri:

  • itemNames ([String]): array dei nomi degli articoli
  • itemPrices ([Double]): array dei prezzi corrispondenti (della stessa lunghezza di itemNames)
  • budget (Double): l’importo massimo che si può spendere

Valore restituito: un array dei nomi degli articoli acquistabili entro il budget, nell’ordine in cui compaiono ([String])

Esempio:

// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)

Provalo tu

func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
    // Scrivi il codice qui
}

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Swift