삐까냥의 파도타기

11403번) 경로 찾기 본문

코딩/백준 알고리즘

11403번) 경로 찾기

금손형아 2017. 11. 14. 23:37

문제 출처 : https://www.acmicpc.net/problem/11403


DFS 입니다.


dsf에 익숙치 않아 아직은 어버버 거리네요.


import java.util.Scanner;


public class Q11403 {


static int[][] a;

static int num;

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

num = sc.nextInt();

a = new int[num][num];

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

for ( int j = 0; j < num; j++ ) {

a[i][j] = sc.nextInt();

}

}

for ( int y = 0; y < num; y++ ) { //각 Y별로 체크한다.

int[] checkX = new int[num]; //Y에 대한 x배열을 만든다.

checkX[y] = -1; //시작할 때 checkX[0]은 0이 되야하기 때문에 -1을 세팅   

setRoute(y, checkX); //Y에 대한 체크 시작

a[y] = checkX;

}

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

for ( int j = 0; j < num; j++ ) {

System.out.print(a[i][j] + " ");

}

System.out.println();

}

}

public static void setRoute(int y, int[] checkX) {

checkX[y] += 1; //한번 수행했다는걸 알려주기 위해 +1을 해줌

for ( int x = 0; x < num; x++ ) { //새로운 Y에서 갈 수 있는 경로(x)를 찾아본다.

if ( a[y][x] == 1 && checkX[x] == 0 ) { //갈수있는 길이면서 아직 가보지 않은 길이면 

setRoute(x, checkX); //가본다.(인자 x는 새로운 y가 돼서 새로 탐색수행)

}

}

}

}


'코딩 > 백준 알고리즘' 카테고리의 다른 글

1939번) 통나무 옮기기  (0) 2018.04.10
2468번) 안전 영역  (0) 2018.04.10
1697번) 숨바꼭질  (0) 2017.11.14
1260번) DFS와 BFS  (0) 2017.11.14
9996번) 한국이 그리울 땐 서버에 접속하지  (0) 2017.11.12