FMNotas técnicasPortfolio
Volver al blog

Fundamentos · Iniciación

Lógica y algoritmos sin misterio

Un algoritmo es una receta finita y verificable. La parte difícil no es escribir el `for`: es definir exactamente qué tiene que pasar en cada caso.

Al terminar esta nota
  • Convertir requisitos ambiguos en casos
  • Escribir pseudocódigo
  • Comparar soluciones por costo
01 / 03

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?
02 / 03

Primero pseudocódigo

El pseudocódigo evita discutir sintaxis mientras todavía estás pensando la solución.

text
PARA cada pedido
  SI pedido está pagado
    sumar pedido.total
DEVOLVER suma
03 / 03

El 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.

js
const totalPagado = pedidos
  .filter((pedido) => pedido.pagado)
  .reduce((total, pedido) => total + pedido.total, 0);
Análisis de complejidad● interactivo
INPUTRULECHECKOUTPUT
Para practicar

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.