Qué comprar
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 86 de 86.
Desafío
FácilEscribe una función whatToBuy que reciba itemNames, itemPrices y budget y devuelva un array con los nombres de los artículos que se pueden comprar dentro del presupuesto.
Itera a través de los artículos en orden. Para cada artículo, comprueba si añadir su precio a tu total acumulado se mantendría dentro del presupuesto. Si es así, añade el nombre del artículo a tu lista de la compra y actualiza el total. Si un artículo excede el presupuesto, sáltalo y continúa comprobando los artículos restantes.
Lógica:
- Comienza con un total acumulado de
0.0y un array de resultados vacío - Recorre cada artículo por índice
- Si el total acumulado más el precio del artículo actual es menor o igual al presupuesto, añade el nombre del artículo al resultado y actualiza el total acumulado
- Si añadir el artículo excediera el presupuesto, sáltalo y continúa con el siguiente artículo
- Devuelve el array de nombres de artículos que se pueden costear
Parámetros:
itemNames([String]): Array de nombres de artículositemPrices([Double]): Array de precios correspondientes (misma longitud que itemNames)budget(Double): La cantidad máxima que se puede gastar
Devuelve: Un array de nombres de artículos que se pueden costear dentro del presupuesto, en el orden en que aparecen ([String])
Ejemplo:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple cuesta 2.0, Bread cuesta 3.5, el total es 5.5 que está dentro del presupuesto)
// (Milk haría que el total fuera 9.5, lo cual excede 6.0, por lo que se omite)Pruébalo tú mismo
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Escribe el código aquí
}
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica