justgo_developer

[JAVA]백준 2178 미로탐색 본문

IT/코딩 문제 풀이

[JAVA]백준 2178 미로탐색

다날92 2018. 1. 9. 14:50
728x90
반응형


import java.util.*;


public class Main {

static int N;

static int M;

static int [][] maze = new int[100][100];

static boolean [][] visit = new boolean[100][100];

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

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


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

N = sc.nextInt();

M = sc.nextInt();

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

String str = sc.next();

for(int j=0;j<str.length();j++){

maze[i][j] = str.charAt(j)-'0';

}

}

maze[0][0]=2;

bfs(0,0);

System.out.print(maze[N-1][M-1]-1);

}

public static void bfs(int n, int m){

Queue<Integer> qx = new LinkedList<Integer>();

Queue<Integer> qy = new LinkedList<Integer>();

qx.add(n);

qy.add(m);

while(!qx.isEmpty() && !qy.isEmpty()){

n = qx.poll();

m = qy.poll();

visit[n][m]=true;

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

int nx = n + dx[i];

int ny = m + dy[i];

if(nx>=0 && ny>=0 && nx<N && ny<M){

if(maze[nx][ny]==1 && visit[nx][ny]==false){

qx.add(nx);

qy.add(ny);

visit[nx][ny]=true;

maze[nx][ny]= maze[n][m]+1;

}

}

}

}

}

}


728x90
반응형

'IT > 코딩 문제 풀이' 카테고리의 다른 글

[JAVA] 백준 15657 N과 M (8)  (0) 2018.09.10
[JAVA] 백준 1012 유기농배추  (0) 2018.01.10
[JAVA] 백준 2161 카드1  (0) 2018.01.03
[JAVA] 백준 1547 공  (0) 2018.01.03
[JAVA] 백준 1057 토너먼트  (0) 2018.01.01