Tags
- Python
- dfs
- ๋๋น ์ฐ์ ํ์
- ์ ๋ ฌ
- PGM
- Java
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ํ์
- Brute Force Algorithm
- BFS
- greedy
- LV2
- sort
- Dynamic Programming
- stack
- BOJ
- ๊ต์ฌ
- ๊ทธ๋ํ ์ด๋ก
- ์๋ฎฌ๋ ์ด์
- queue
- ์๋ฃ๊ตฌ์กฐ
- CodingTest
- SpringBoot
- ๊ตฌํ
- ๋ฐฑํธ๋ํน
- Study
- ์ํ
- ์ ์๋ก
- DP
- ๋ฌธ์์ด
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1926 : ๊ทธ๋ฆผ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n * m ๋ํ์ง์์ ์ฐ๊ฒฐ๋ 1์ ๊ฐ์์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
- BFSํน์ DFS๋ก ์ฐ๊ฒฐ๋ 1์ ํ์ํ๋ค.
- ์ฐ๊ฒฐ๋ 1 ๋ฌด๋ฆฌ์ ๊ฐ์์ ๊ทธ ์ค ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
boolean[][] arr = new boolean[n][m];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < m; j++) {
arr[i][j] = Integer.parseInt(st.nextToken()) != 0;
}
}
// bfs
int cnt = 0, max = 0;
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
Queue<Pair> que = null;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (arr[i][j]) {
int temp = 0;
cnt++;
que = new ArrayDeque<>();
que.add(new Pair(i,j));
arr[i][j] = false;
while (!que.isEmpty()) {
temp++;
Pair pair = que.poll();
for (int k = 0; k < 4; k++) {
int r = pair.r+dx[k];
int c = pair.c+dy[k];
if (0<=r&&r<n && 0<=c && c<m&&arr[r][c]){
arr[r][c] = false;
que.offer(new Pair(r,c));
}
}
}
max = Math.max(max, temp);
}
}
}
System.out.println(cnt);
System.out.println(max);
}
private static class Pair{
int r, c;
public Pair(int r, int c) {
this.r = r;
this.c = c;
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n * m ํฌ๊ธฐ์ 2์ฐจ์ ๋ฐฐ์ด arr๋ฅผ ํ์ํ๋ฉฐ true๋ฅผ ์ฐพ๋๋ค.
- ๋ฐ๊ฒฌํ ์ขํ๋ฅผ ํ์ ๋ฃ๊ณ BFS๋ก ์ธ์ ํ 1์ ๋ชจ๋ false๋ก ๋ฐ๊พผ๋ค.
- ์ด๋ ๋ฌด๋ฆฌ์ ์ cnt๋ฅผ +1ํด์ฃผ๊ณ , ์ธ์ ํ 1์ ๊ฐ์๋ฅผ ๋ฐ๋ก ์นด์ดํธํด์ max๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
๐ธ end ๐ธ
- ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ํ ํ์ ๋ฌธ์ ์ฌ์ ๋ฌด๋ฆฌ์์ด ํ์๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1916 : ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2023.03.08 |
---|---|
BOJ_1717 : ์งํฉ์ ํํ (0) | 2023.03.08 |
BOJ_3109 : ๋นต์ง (0) | 2023.02.22 |
BOJ_6987 : ์๋์ปต (0) | 2023.02.21 |
BOJ_4963 : ์ฌ์ ๊ฐ์ (0) | 2023.02.21 |