O problema apresentado é uma versão simplificada do \textit{sliding puzzle}. Nosso objetivo é determinar o número mínimo de movimentos para organizar um tabuleiro $2 \times 3$ a partir de um estado inicial qualquer.

\subsection*{Representação do estado}

\begin{itemize}
    \item Cada configuração do tabuleiro pode ser representada como uma sequência linear de números, por exemplo, $[1, 2, 3, 4, 5, 0]$ para o estado final.
    \item A posição do $0$ indica onde a casa vazia está localizada e determina quais movimentos são válidos.
\end{itemize}

\subsection*{Estratégia de solução usando BFS}

Podemos modelar o problema como um grafo, onde cada nó é uma configuração do tabuleiro e cada aresta corresponde a um movimento válido do $0$. Uma abordagem eficiente é iniciar a BFS a partir do \textbf{estado final}:

\begin{enumerate}
    \item Inicialize a fila com o estado final $[1,2,3,4,5,0]$ e marque-o como visitado com distância $0$.
    \item Para cada estado na fila:
    \begin{itemize}
        \item Identifique a posição do $0$ e calcule todas as posições adjacentes (horizontal e vertical) para trocas.
        \item Gere os estados resultantes dessas trocas.
        \item Se algum novo estado corresponder ao estado inicial fornecido, retorne a distância armazenada, que representa o número mínimo de movimentos.
        \item Caso contrário, adicione o novo estado à fila e marque-o como visitado.
    \end{itemize}
    \item Se a fila se esvaziar sem encontrar o estado inicial, retorne $-1$.
\end{enumerate}

\subsection*{Complexidade}

\begin{itemize}
    \item \textbf{Espacial:} $O(6!)$, pois existem $6! = 720$ possíveis permutações do tabuleiro $2 \times 3$.
\end{itemize}