Você consegue entrar na caverna?

Você está jogando um videogame. Sua tela pode ser representada como um array 2D, onde os 0 representam áreas transitáveis e os 1 representam áreas intransitáveis. No momento, você está procurando a entrada de uma caverna localizada no lado direito da tela. Seu personagem começa em qualquer lugar da coluna mais à esquerda.

Crie uma função que determine se você consegue entrar na caverna. Você só pode se mover para a esquerda, direita, cima ou baixo (não é permitido se mover na diagonal).

Por exemplo:

[
  [0, 0, 1, 1, 1, 0, 0, 0],
  [0, 0, 0, 0, 1, 0, 0, 0],
  [0, 0, 1, 0, 0, 0, 0, 0],
  [0, 0, 1, 1, 1, 1, 1, 0]
]

Você encontrou a entrada! A função deve retornar true.

[
  [0, 0, 0, 1, 0, 0, 0, 0],
  [0, 0, 0, 1, 1, 0, 0, 0],
  [0, 0, 0, 0, 1, 1, 0, 0],
  [0, 0, 0, 1, 1, 1, 1, 0]
]

Não, continue procurando. A função deve retornar false.

Exemplos

can_enter_cave([
  [0, 1, 1, 1, 0, 1, 1, 0],
  [0, 0, 1, 1, 0, 0, 0, 0],
  [0, 0, 0, 0, 1, 1, 1, 0],
  [0, 1, 1, 1, 1, 1, 1, 0]
]) ➞ false

# You cannot walk diagonally!


can_enter_cave([
  [0, 1, 1, 1, 0, 1, 1, 0],
  [0, 0, 1, 1, 0, 0, 0, 0],
  [1, 0, 0, 0, 0, 1, 0, 0],
  [1, 1, 1, 1, 1, 1, 1, 0]
]) ➞ true


can_enter_cave([
  [0, 1, 1, 1, 1, 1, 1, 0],
  [0, 0, 0, 0, 1, 0, 0, 0],
  [0, 0, 1, 1, 1, 1, 1, 0],
  [0, 1, 1, 0, 0, 1, 1, 0]
]) ➞ false

Observações

  • Você está vendo a tela do jogo de uma perspectiva aérea.
  • Outra forma de pensar nisso: você consegue entrar na caverna se puder se mover do lado esquerdo da tela até o lado direito, caminhando para cima, para baixo, para a esquerda ou para a direita.
  • A entrada não fica necessariamente no primeiro quadrado; talvez você precise procurá-la na coluna mais à esquerda.