[백준 2206번] 벽 부수고 이동하기 (C++)
·
📚알고리즘/백준
https://www.acmicpc.net/problem/2206 (1,1)에서 (n,m)까지의 최소 경로를 구하는 문제다. 조건: 길은 0, 벽은 1로 표현되어 있으며 벽은 최대 1회까지 부술 수 있다.평범하게 BFS로 구현하되 벽을 부순적이 있는지 확인할 수 있어야한다. 예전에 https://www.acmicpc.net/problem/31404에서 특정위치에 반복해서 들어가는 것 뿐만 아니라 들어오는 방향까지 고려해서 3차원 배열을 이용하여 문제를 해결했었다. 똑같은 문제라고 생각했고 visited배열을 visited[x][y][cnt]로 설정하여 cnt에 벽을 부쉈는지 확인하는 배열을 추가했다. 배열이 3차원이 된 것만 빼면 나머지는 well-known한 BFS탐색이다.#include #includ..