01-08 08:57
Recent Posts
Recent Comments
Tags
- Naver Cloud
- python
- ํ๋ก๋ณด๋ ธ
- ์กํ๊ณ
- ์คํฝ์ค๋น
- linux
- DB
- ํ์ด์๊ณต๋ชจ์
- ์คํฝ๋ ํ
- JOBํ๊ณ
- ์๋ฐ
- ์๋์ด๋ ธ
- DATABASE
- mysql
- ์จ์ผ๋ํ
- ict๊ณต๋ชจ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ด๋ธ์
- SQL
- ICT
- ํ์ด์
- ํ์ด์ฌ
- TSQL
- Java
- RaspberryPi
- ICT๋ฉํ ๋ง
- Spring
- API๋ง์ผํ๋ ์ด์ค
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- appetizer
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_64 ๋ฏธ๋ก์ ์ต๋จ ๊ฑฐ๋ฆฌ ํต๋ก (BFS) ๋ณธ๋ฌธ
Algorithm/Java
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_64 ๋ฏธ๋ก์ ์ต๋จ ๊ฑฐ๋ฆฌ ํต๋ก (BFS)
miinsun 2022. 3. 3. 19:30๐ฌ ๋ฌธ์ ์ค๋ช
7*7 ๊ฒฉ์ํ ๋ฏธ๋ก๋ฅผ ํ์ถํ๋ ์ต๋จ๊ฒฝ๋ก์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๊ฒฝ๋ก์ ๊ธธ์ด๋ ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊น์ง ๊ฐ๋๋ฐ ์ด๋ํ ํ์๋ฅผ ์๋ฏธํ๋ค.
์ถ๋ฐ์ ์ ๊ฒฉ์์ (0, 0) ์ขํ์ด๊ณ , ํ์ถ ๋์ฐฉ์ ์ (6, 6)์ขํ์ด๋ค. ๊ฒฉ์ํ์ 1์ ๋ฒฝ์ด๊ณ , 0์ ๋๋ก์ด๋ค.
๊ฒฉ์ํ์ ์์ง์์ ์ํ์ข์ฐ๋ก๋ง ์์ง์ธ๋ค.
๋ฏธ๋ก๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด, ์๋์ ๊ฐ์ ๊ฒฝ๋ก๋ก ์ต๋จ ๊ฒฝ๋ก์ ๊ธธ์ด๋ 12์ด๋ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ - ์ฒซ ๋ฒ์งธ ์ค๋ถํฐ 7*7 ๊ฒฉ์์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋๋ค.
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
๐ป Solution.java
import java.util.*;
class Point {
public int x, y;
Point (int x, int y){
this.x = x;
this.y = y;
}
}
public class Main {
static int[][] board, dis;
static int[] dx = {-1, 0, 1, 0};
static int[] dy = {0, 1, 0, -1};
public void BFS(int x, int y) {
Queue<Point> Q = new LinkedList<>();
Q.offer(new Point(x, y));
board[x][y] = 1;
while(!Q.isEmpty()) {
Point tmp = Q.poll();
for(int i = 0; i < 4; i++) {
int nx = tmp.x + dx[i];
int ny = tmp.y + dy[i];
// ๊ฒฝ๊ณ์ ๊ฒ์ฌ
if(nx >= 0 && nx <=6 && ny >= 0 && ny <= 6 && board[nx][ny] == 0) {
board[nx][ny] = 1;
Q.offer(new Point(nx, ny));
dis[nx][ny] = dis[tmp.x][tmp.y] + 1;
}
}
}
}
public static void main(String[] args){
Main main = new Main();
Scanner sc = new Scanner(System.in);
board = new int[7][7];
dis = new int[7][7];
for(int i = 0; i < 7; i++) {
for(int j = 0; j < 7; j++) {
board[i][j] = sc.nextInt();
}
}
main.BFS(0, 0);
if(dis[6][6] == 0) System.out.println(-1);
else System.out.println(dis[6][6]);
sc.close();
return ;
}
}
'Algorithm > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_66 ์ฌ๋๋ผ ์์ผ๋๋ (0) | 2022.03.03 |
---|---|
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_65 ํ ๋งํ (BFS ํ์ฉ) (0) | 2022.03.03 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_63 ๋ฏธ๋ก์ ์ต๋จ ๊ฑฐ๋ฆฌ ํต๋ก(DFS) (0) | 2022.03.03 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_62 ๋ฏธ๋ก ํ์ (DFS) (0) | 2022.03.03 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_61 ์กฐํฉ ๊ตฌํ๊ธฐ (0) | 2022.03.03 |
Comments