Un granjero tiene que cruzar un río con un zorro, una gallina y un saco de maíz. Tiene un bote de remos, y sólo puede llevar con él una cosa en la barca. Si el zorro y el pato quedan solos, el zorro se come al pato. Si el pato y el maíz quedan solos, el pato se come el maíz. ¿Cómo lo conseguirá el hombre hacer cruzar el zorro, la gallina y el maíz?

Restricciones clave:

  1. El granjero solo puede llevar a uno en el bote.
  2. El zorro y el pato no pueden quedarse solos.
  3. El pato y el maíz no pueden quedarse solos.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5fc91c8f-4abe-411b-be21-34073d53635b/Untitled.png

Consideraciones

Replantear el problema es la clave para resolverlo, algo común al momento de estar creando software y querer resolver alguna situación a través del código. Este acertijo implica no solo conocer cuales son las condiciones y limitantes del problema, sino también pensar en formas distintas para resolverlo.

Algo que también te ayudará es encontrar un patrón respecto a cuales elementos pueden o no moverse.