Menu
Coddy logo textTech

Was zu kaufen ist

Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 86 von 86.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion whatToBuy, die itemNames, itemPrices und budget entgegennimmt und ein Array mit Artikelnamen zurückgibt, die innerhalb des Budgets gekauft werden können.

Iterieren Sie nacheinander durch die Artikel. Prüfen Sie für jeden Artikel, ob das Hinzufügen seines Preises zu Ihrer laufenden Summe innerhalb des Budgets bleiben würde. Wenn ja, fügen Sie den Artikelnamen Ihrer Einkaufsliste hinzu und aktualisieren Sie die Gesamtsumme. Wenn ein Artikel das Budget überschreiten würde, überspringen Sie ihn und prüfen Sie die verbleibenden Artikel weiter.

Logik:

  1. Beginnen Sie mit einer laufenden Summe von 0.0 und einem leeren Ergebnis-Array
  2. Gehen Sie jeden Artikel per Index in einer Schleife durch
  3. Wenn die laufende Summe plus der Preis des aktuellen Artikels kleiner oder gleich dem Budget ist, fügen Sie den Artikelnamen zum Ergebnis hinzu und aktualisieren Sie die laufende Summe
  4. Wenn das Hinzufügen des Artikels das Budget überschreiten würde, überspringen Sie ihn und fahren Sie mit dem nächsten Artikel fort
  5. Geben Sie das Array der erschwinglichen Artikelnamen zurück

Parameter:

  • itemNames ([String]): Array mit Artikelnamen
  • itemPrices ([Double]): Array mit den entsprechenden Preisen (gleiche Länge wie itemNames)
  • budget (Double): Der maximale Betrag, der ausgegeben werden kann

Rückgabewert: Ein Array mit Artikelnamen, die innerhalb des Budgets bezahlt werden können, in der Reihenfolge ihres Erscheinens ([String])

Beispiel:

// 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)

Probier es selbst

func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
    // Schreibe hier den Code
}

Alle Lektionen in Grundlagen