01-08 08:57
Recent Posts
Recent Comments
Tags
- mysql
- ์ด๋ธ์
- python
- JOBํ๊ณ
- ์จ์ผ๋ํ
- API๋ง์ผํ๋ ์ด์ค
- ํ์ด์
- ํ์ด์ฌ
- TSQL
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์กํ๊ณ
- ICT
- ict๊ณต๋ชจ์
- appetizer
- DATABASE
- ์คํฝ์ค๋น
- ICT๋ฉํ ๋ง
- SQL
- Spring
- ์๋ฐ
- linux
- DB
- RaspberryPi
- ํ๋ก๋ณด๋ ธ
- ํ์ด์๊ณต๋ชจ์
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- Java
- Naver Cloud
- ์๋์ด๋ ธ
- ์คํฝ๋ ํ
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค BFS 2636 :: ์น์ฆ ๋ณธ๋ฌธ
๐ฌ ๋ฌธ์ ์ค๋ช
์๋ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ์นธ๋ค๋ก ์ด๋ฃจ์ด์ง ์ฌ๊ฐํ ๋ชจ์์ ํ์ด ์๊ณ , ๊ทธ ์์ ์์ ์น์ฆ(ํ์์ผ๋ก ํ์๋ ๋ถ๋ถ)๊ฐ ๋์ฌ ์๋ค. ํ์ ๊ฐ์ฅ์๋ฆฌ(<๊ทธ๋ฆผ 1>์์ ๋ค๋ชจ ์นธ์ X์น ๋ถ๋ถ)์๋ ์น์ฆ๊ฐ ๋์ฌ ์์ง ์์ผ๋ฉฐ ์น์ฆ์๋ ํ๋ ์ด์์ ๊ตฌ๋ฉ์ด ์์ ์ ์๋ค.
์ด ์น์ฆ๋ฅผ ๊ณต๊ธฐ ์ค์ ๋์ผ๋ฉด ๋ น๊ฒ ๋๋๋ฐ ๊ณต๊ธฐ์ ์ ์ด๋ ์นธ์ ํ ์๊ฐ์ด ์ง๋๋ฉด ๋ น์ ์์ด์ง๋ค. ์น์ฆ์ ๊ตฌ๋ฉ ์์๋ ๊ณต๊ธฐ๊ฐ ์์ง๋ง ๊ตฌ๋ฉ์ ๋๋ฌ์ผ ์น์ฆ๊ฐ ๋ น์์ ๊ตฌ๋ฉ์ด ์ด๋ฆฌ๋ฉด ๊ตฌ๋ฉ ์์ผ๋ก ๊ณต๊ธฐ๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ค. <๊ทธ๋ฆผ 1>์ ๊ฒฝ์ฐ, ์น์ฆ์ ๊ตฌ๋ฉ์ ๋๋ฌ์ผ ์น์ฆ๋ ๋ น์ง ์๊ณ ‘c’๋ก ํ์๋ ๋ถ๋ถ๋ง ํ ์๊ฐ ํ์ ๋ น์ ์์ด์ ธ์ <๊ทธ๋ฆผ 2>์ ๊ฐ์ด ๋๋ค.
๋ค์ ํ ์๊ฐ ํ์๋ <๊ทธ๋ฆผ 2>์์ ‘c’๋ก ํ์๋ ๋ถ๋ถ์ด ๋ น์ ์์ด์ ธ์ <๊ทธ๋ฆผ 3>๊ณผ ๊ฐ์ด ๋๋ค.
<๊ทธ๋ฆผ 3>์ ์๋ ์น์ฆ์ ๋ ์๊ฐ ํ ๋ชจ์์ ๋ํ๋ด๊ณ ์์ผ๋ฉฐ, ๋จ์ ์กฐ๊ฐ๋ค์ ํ ์๊ฐ์ด ๋ ์ง๋๋ฉด ๋ชจ๋ ๋ น์ ์์ด์ง๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฒ์ ์น์ฆ๊ฐ ๋ชจ๋ ๋ น์ ์์ด์ง๋ ๋ฐ๋ ์ธ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. <๊ทธ๋ฆผ 3>๊ณผ ๊ฐ์ด ์น์ฆ๊ฐ ๋ น๋ ๊ณผ์ ์์ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋์ด ์ง ์๋ ์๋ค.
์ ๋ ฅ์ผ๋ก ์ฌ๊ฐํ ๋ชจ์์ ํ์ ํฌ๊ธฐ์ ํ ์กฐ๊ฐ์ ์น์ฆ๊ฐ ํ ์์ ์ฃผ์ด์ก์ ๋, ๊ณต๊ธฐ ์ค์์ ์น์ฆ๊ฐ ๋ชจ๋ ๋ น์ ์์ด์ง๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ๋ชจ๋ ๋ น๊ธฐ ํ ์๊ฐ ์ ์ ๋จ์์๋ ์น์ฆ์กฐ๊ฐ์ด ๋์ฌ ์๋ ์นธ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ์งธ ์ค์๋ ์ฌ๊ฐํ ๋ชจ์ ํ์ ์ธ๋ก์ ๊ฐ๋ก์ ๊ธธ์ด๊ฐ ์์ ์ ์๋ก ์ฃผ์ด์ง๋ค.
- ์ธ๋ก์ ๊ฐ๋ก์ ๊ธธ์ด๋ ์ต๋ 100์ด๋ค.
- ํ์ ๊ฐ ๊ฐ๋ก์ค์ ๋ชจ์์ด ์ ์ค๋ถํฐ ์ฐจ๋ก๋ก ๋์งธ ์ค๋ถํฐ ๋ง์ง๋ง ์ค๊น์ง ์ฃผ์ด์ง๋ค.
- ์น์ฆ๊ฐ ์๋ ์นธ์ 0, ์น์ฆ๊ฐ ์๋ ์นธ์ 1๋ก ์ฃผ์ด์ง๋ฉฐ ๊ฐ ์ซ์ ์ฌ์ด์๋ ๋น์นธ์ด ํ๋์ฉ ์๋ค.
์ถ๋ ฅ
- ์ฒซ์งธ ์ค์๋ ์น์ฆ๊ฐ ๋ชจ๋ ๋ น์์ ์์ด์ง๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ถ๋ ฅํ๊ณ ,
- ๋์งธ ์ค์๋ ๋ชจ๋ ๋
น๊ธฐ ํ ์๊ฐ ์ ์ ๋จ์์๋ ์น์ฆ์กฐ๊ฐ์ด ๋์ฌ ์๋ ์นธ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1)
13 12
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0
0 1 1 1 0 0 0 1 1 0 0 0
0 1 1 1 1 1 1 0 0 0 0 0
0 1 1 1 1 1 0 1 1 0 0 0
0 1 1 1 1 0 0 1 1 0 0 0
0 0 1 1 0 0 0 1 1 0 0 0
0 0 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
์์ ์ถ๋ ฅ 1)
3
5
โ
๐ป Main.java
/* ๋ฐฑ์ค BFS - 2636 :: ์น์ฆ */
import java.util.*;
import java.io.*;
class Point {
int x;
int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
}
public class Main{
static int[][] board;
static boolean[][] visited;
static final int dx[] = {-1, 0, 1, 0}; //์ํ์ข์ฐ ๋ฐฉํฅ ์ค์
static final int dy[] = {0, 1, 0, -1}; //์ํ์ข์ฐ ๋ฐฉํฅ ์ค์
static int n, m;
public static void main(String[] args)throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
// ์ง๋ ์
๋ ฅ ๋ฐ๊ธฐ
board = new int[n][m];
int cheese = 0;
for(int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < m; j++) {
board[i][j] = Integer.parseInt(st.nextToken());
// ๊ฐ๊ณ ์๋ ์น์ฆ์ ์ดํฉ
if(board[i][j] == 1) {
cheese++;
}
}
}
int h = 0;
int lastCheese = 0;
// ๋ชจ๋ ์น์ฆ๊ฐ ๋
น์ ๋๊น์ง ๋ฐ๋ณต
while(cheese != 0) {
h++;
lastCheese = cheese;
Queue<Point> q = new LinkedList<>();
visited = new boolean[n][m];
q.add(new Point(0, 0));
visited[0][0] = true;
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 >= n || ny < 0 || ny >= m || visited[nx][ny])
continue;
if (board[nx][ny] == 1) {
cheese--;
board[nx][ny] = 0;
} else if (board[nx][ny] == 0) {
q.offer(new Point(nx, ny));
}
visited[nx][ny] = true;
}
}
}
System.out.println(h);
System.out.println(lastCheese);
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค BFS 14497 :: ์ฃผ๋์ ๋ (0) | 2022.07.09 |
---|---|
[BAEKJOON] ๋ฐฑ์ค BFS 12851 :: ์จ๋ฐ๊ผญ์ง 2 (0) | 2022.07.08 |
[BAEKJOON] ๋ฐฑ์ค BFS 2589 :: ๋ณด๋ฌผ์ฌ (0) | 2022.06.15 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ฆฌ๋ 10709 :: ๊ธฐ์์บ์คํฐ (0) | 2022.06.13 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ฆฌ๋ 2828 :: ์ฌ๊ณผ ๋ด๊ธฐ ๊ฒ์ (0) | 2022.06.13 |
Comments