coding test - C++/기본기문제
[C++] 미로탐색 - DFS 경로 수 구하기
sillon
2026. 9. 29. 00:13
728x90
반응형

- maps 복사할때 &maps 해서 주소 참조 하는거로 진행하기
#include <vector>
#include <string>
#include <iostream>
using namespace std;
vector<vector<int>> arr = {
{0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 1, 1, 0},
{0, 0, 0, 1, 0, 0, 0},
{1, 1, 0, 1, 0, 1, 1},
{1, 1, 0, 0, 0, 0, 1},
{1, 1, 0, 1, 1, 0, 0},
{1, 0, 0, 0, 0, 0, 0}
};
int answer = 0;
void DFS(int x, int y, vector<vector<int>> &maps){
if (x == 6 && y == 6){
answer += 1;
return;
}
int dx[4] = {0,0,1,-1};
int dy[4] = {1,-1,0,0};
for (int i = 0; i < 4; i++){
int nx = x + dx[i];
int ny = y + dy[i];
if (nx < 0 || nx >= 7 || ny < 0 || ny >= 7) continue;
if (maps[ny][nx] == 1) continue;
maps[ny][nx] = 1;
DFS(nx,ny,maps);
maps[ny][nx] = 0;
}
}
int main(){
// 출발은 0,0
// 도착점 6,6
arr[0][0] = 1;
DFS(0,0,arr);
cout << answer;
return 0;
}728x90
반응형