작성
·
153
0
문제를 보고 아래와 같이 풀었으나
// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
using namespace std;
const int n = 3;
//4방향 이동
int dy[4] = { -1, 0, 1, 0 };
int dx[4] = { 0, 1, 0, -1};
int visited[n][n];
vector<int> v;
//기본 맵
int a[3][3] =
{
{10,20,21},
{70,90,12},
{80,110,120}
};
void print()
{
for(int i : v)
{
cout << i << " ";
}
cout << "\n";
}
// 완탐 재귀 함수
void go(int y , int x)
{
//기저 조건
if( y == n-1 && x == n-1 ) {
print();
return;
}
for(int i = 0; i < 4; i ++)
{
int ny = y + dy[i];
int nx = x + dx[i];
//범위 체크
if( ny < 0 || ny >= n || nx < 0 || ny >= n ) continue;
if( visited[ny][nx] ) continue;
visited[ny][nx] = 1; //방문 처리
v.push_back(a[ny][nx]);
go(ny, nx);
visited[ny][nx] = 0; //원복
v.pop_back();
}
}
//완탐과 원복 : 예제_ 긍정왕 홍철이의 구걸 여행행
int main() {
visited[0][0] = 1;
v.push_back(a[0][0]);
go(0,0);
return 0;
}
출력이
위와 같이 0이 껴서 이상하게 나옵니다.
큰돌님 코드와 비교해 봤는데 다른 점을 못찾겠어요ㅜㅜ 제가 실수한 것이 있을까요??