int dx[4]={1,0,-1,0}, dy[4]{0,1,0,-1};


void dfs(int a, int b, int c)

{

    arr[a][b]=c;

    for (int i=0; i<4; i++) {

        if (arr[a+dx[i]][b+dy[i]]==1 && safe(a+dx[i], b+dy[i])) {

            dfs(a+dx[i], b+dy[i], cmp);

        }

    }

}


int safe(int a, int b)

{

    return (0<=a && a<n) && (0<=b && b<n);

}


일단 이소스는 전체중 일부인데, 목적은 1이 있는곳을 cmp변수에 담겨있는 값으로 물들이는거야

그런데 백트래킹이라는 부분이 이해가지않아

분명 뒤로가는 명령이 아닌 주위에 1을 찾으라고만 했는데, 왜 스스로 백트래킹을 하는거야? 형들 도와줘