[백준] 2206번 벽 부수고 이동하기 (Java)
2206번 벽 부수고 이동하기 1. 문제 분석 0은 이동할 수 있는 칸, 1은 벽이 있어서 이동할 수 없는 칸입니다. (1, 1)에서 시작해서 (N, M)까지 가는데 최단 경로를 구해야 합니다. 이동은 상, 하, 좌, 우로 가능하고, 이때 벽(1)을 최소 한번 부수고 지나갈 수 있습니다. 문제에서 주어진 사항을 보고, BFS로 접근해야겠다는 생각을 했습니다. 방향이 존재하기 때문에 재귀적으로 구현을 했고, 벽을 1번 이상 부순 경우는 더 이상 나아가지 못하도록 막는 방법을 생각했습니다. 계속 틀렸다는 말이 나와서 2차원 배열 visited를 이용하여 문제를 변경해서 풀어봤는데, 이때는 시간 초과가 났습니다. 2. 핵심 아이디어 특정한 지점 (x, y)에 도달하는 데 있어서 벽을 1번 부수고 가는 경우와 ..