El camino más corto

Dada una cuadrícula rectangular de m por n espacios, representados por 0, y una cantidad de puntos, representados por 1, 2, 3..., devuelve el número de movimientos del camino más corto que comienza en 1 y recorre todos los demás puntos en orden ascendente.

Ejemplos

shortest_path([
  "001",
  "002",
  "003"
]) ➞ 2

shortest_path([
  "00000",
  "01006",
  "02000",
  "30050",
  "00004"
]) ➞ 13

shortest_path([
  "00020000",
  "01000000"
]) ➞ 3

Notas

  • Solo se permiten movimientos horizontales y verticales.
  • Cada movimiento de un lugar a otro adyacente cuenta como 1, independientemente de la dirección.
  • Los puntos van del 1 al 9 como máximo, sin dígitos repetidos ni faltantes.