삐까냥의 파도타기
11403번) 경로 찾기 본문
문제 출처 : 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 |