๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[JAVA/์ฝ๋ฉํ ์คํธ] ๋ฏธ๋ก์ ์ต๋จ๊ฑฐ๋ฆฌ ํต๋ก(BFS) ๋ณธ๋ฌธ
๊ฐ๋ฐ/์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA
[JAVA/์ฝ๋ฉํ ์คํธ] ๋ฏธ๋ก์ ์ต๋จ๊ฑฐ๋ฆฌ ํต๋ก(BFS)
์์ผ์ด 2022. 3. 18. 20:27๋ฐ์ํ
์ค๋ช
7*7 ๊ฒฉ์ํ ๋ฏธ๋ก๋ฅผ ํ์ถํ๋ ์ต๋จ๊ฒฝ๋ก์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๊ฒฝ๋ก์ ๊ธธ์ด๋ ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊น์ง ๊ฐ๋๋ฐ ์ด๋ํ ํ์๋ฅผ ์๋ฏธํ๋ค.
์ถ๋ฐ์ ์ ๊ฒฉ์์ (1, 1) ์ขํ์ด๊ณ , ํ์ถ ๋์ฐฉ์ ์ (7, 7)์ขํ์ด๋ค. ๊ฒฉ์ํ์ 1์ ๋ฒฝ์ด๊ณ , 0์ ๋๋ก์ด๋ค.
๊ฒฉ์ํ์ ์์ง์์ ์ํ์ข์ฐ๋ก๋ง ์์ง์ธ๋ค. ๋ฏธ๋ก๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
์์ ๊ฐ์ ๊ฒฝ๋ก๊ฐ ์ต๋จ ๊ฒฝ๋ก์ ๊ธธ์ด๋ 12์ด๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค๋ถํฐ 7*7 ๊ฒฉ์์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋๋ค.
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์ต๋จ์ผ๋ก ์์ง์ธ ์นธ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋์ฐฉํ ์ ์์ผ๋ฉด -1๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
0 0 0 0 0 0 0
0 1 1 1 1 1 0
0 0 0 1 0 0 0
1 1 0 1 0 1 1
1 1 0 1 0 0 0
1 0 0 0 1 0 0
1 0 1 0 0 0 0
์์ ์ถ๋ ฅ 1
12
import java.util.*;
class Point{
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
public class Main {
static int[] disX = {0, 1, 0, -1};
static int[] disY = {1, 0, -1, 0};
static int[][] array;
static int[][] dis;
static int answer = Integer.MAX_VALUE;
public void BFS(int x, int y){
Queue<Point> qu = new LinkedList<>();
qu.offer(new Point(x, y));
while(!qu.isEmpty()){
Point point = qu.poll();
x = point.x;
y = point.y;
array[x][y] = 1;
for (int i = 0; i < 4; i++) {
int tmpX = x + disX[i];
int tmpY = y + disY[i];
if(tmpX >= 0 && tmpX <=6 && tmpY >= 0 && tmpY <= 6 && array[tmpX][tmpY] == 0){
dis[tmpX][tmpY] = dis[x][y] + 1;
qu.offer(new Point(tmpX, tmpY));
}
}
}
}
public static void main(String[] args) {
Main main = new Main();
Scanner in = new Scanner(System.in);
array = new int[7][7];
dis = new int[7][7];
for(int i=0; i<7; i++){
for(int j=0; j<7; j++){
array[i][j] = in.nextInt();
}
}
main.BFS(0, 0);
if(dis[6][6] == 0){
answer = -1;
}else{
answer = dis[6][6];
}
System.out.println(answer);
}
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA/์ฝ๋ฉํ ์คํธ] ์ฌ๋๋ผ ์์ผ๋๋ (0) | 2022.03.22 |
---|---|
[JAVA/์ฝ๋ฉํ ์คํธ] ํ ๋งํ (BFS ํ์ฉ) (0) | 2022.03.18 |
[JAVA/์ฝ๋ฉํ ์คํธ] ๋ฏธ๋กํ์(DFS) (0) | 2022.03.18 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์์ฅ (0) | 2022.03.04 |
[ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ์ซ์ ๊ฒ์ (0) | 2022.02.20 |
Comments