import java.util.Scanner;
public class Main{
static int[] dy = {0, 1, 0, -1};
static int[] dx = {-1, 0, 1, 0};
static int[][] board;
static int answer=0;
public void DFS(int x, int y){
if(x==7 && y==7) answer++;// 종착점에 오면
else{
for(int i=0; i<4; i++){ // 네 방향으로 탐색
int nx = x+dx[i];
int ny = y+dy[i];
if(nx>=1 && nx<=7 && ny>=1 && ny<=7 && board[nx][ny]==0){ // 갈 수 있는 통로라면
board[nx][ny]=1; // 방문 체크
DFS(nx, ny);
board[nx][ny]=0; // 방문 해제
}
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
board = new int[8][8];
for(int i=1; i<=7; i++){
for(int j=1; j<=7; j++){
board[i][j]=kb.nextInt();
}
}
board[1][1]=1; //첫 시작점 체크
T.DFS(1,1);
System.out.println(answer);
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] 알고리즘 : DFS- 피자 배달 거리 (0) | 2022.09.30 |
---|---|
[JAVA] 알고리즘 : DFS, BFS- 섬나라 아일랜드 (0) | 2022.09.30 |
[JAVA] 백준 10814번- 나이순 정렬 (0) | 2022.09.29 |
[JAVA] 백준 1181번 - 단어 정렬 (0) | 2022.09.28 |
[JAVA] 백준 11651번 - 좌표 정렬하기2 (0) | 2022.09.28 |