벽 하나를 부술 수 있는 미로
레벨 L6 · 코딩 · JavaScript · 목표 시간 15분 · 게시일 2026-10-21
"0"(빈칸)과 "1"(벽)로 이루어진 같은 길이의 문자열 배열 grid가 주어진다. 왼쪽 위 칸에서 출발해 오른쪽 아래 칸까지 상하좌우로 한 칸씩 움직인다. 이동하는 동안 벽을 최대 한 개까지 부수고 지나갈 수 있다. 최소 이동 횟수를 구하시오. 도착할 수 없으면 -1이다. 출발 칸과 도착 칸은 항상 빈칸이다.
격자는 최대 500 × 500이다. 벽을 하나씩 부숴 보며 매번 새로 탐색하는 방법으로는 시간 안에 끝나지 않는다.
예제
solve(["0100","1110","1000","0000","0111","0000"]) solve(["010","111","010"]) solve(["0"])