- Convertir requisitos ambiguos en casos
- Escribir pseudocódigo
- Comparar soluciones por costo
Desarmá el problema
Definí ejemplos normales, límites y errores. Si no podés anticipar la salida para una entrada pequeña, todavía no entendiste la regla.
- ¿Qué recibo?
- ¿Qué restricciones existen?
- ¿Qué debo devolver?
- ¿Qué pasa con cero, vacío o repetido?
Primero pseudocódigo
El pseudocódigo evita discutir sintaxis mientras todavía estás pensando la solución.
PARA cada pedido
SI pedido está pagado
sumar pedido.total
DEVOLVER sumaEl costo también es parte de la solución
Recorrer una colección una vez suele ser O(n). Anidar dos recorridos suele acercarse a O(n²). Big O describe cómo crece el trabajo, no cuántos milisegundos tarda hoy.
const totalPagado = pedidos
.filter((pedido) => pedido.pagado)
.reduce((total, pedido) => total + pedido.total, 0);Pensá antes de programar
Dada una lista de emails, devolvé los duplicados sin repetirlos en el resultado.
Mostrar una pista
Un Set permite recordar qué valores ya aparecieron.