백준 2178
1. 문제 이해 이 문제는 BFS를 응용해서 풀 수 있다. 시작지점부터 인접한 곳으로 이동할 때마다 거리를 1씩 증가시키면 된다. 연결된 칸들을 모두 방문한 경우 각 끝지점에서 시작지점을 빼면 시작지점으로 부터 몇 칸 이동했는지 알 수 있다. 이걸 이용해서 (1,1) ~ (N,M) 까지의 거리를 구할 수 있다. 2. 코드 #include #include #include using namespace std; #define X first #define Y second // 상하좌우 네 방향을 고정 // (1,0) : 우, (0,1) : 상, (-1,0) : 좌, (0,-1) : 하 int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,1,0,-1 }; // 배열의 크기를 문제와 딱 맞게..
2024. 4. 18.