01-09 18:44
Recent Posts
Recent Comments
Tags
- linux
- DB
- TSQL
- μ‘νκ³
- APIλ§μΌνλ μ΄μ€
- μ΄λΈμ
- νμ΄μ¬
- Naver Cloud
- Java
- μλμ΄λ Έ
- Spring
- ict곡λͺ¨μ
- python
- ICTλ©ν λ§
- μ¨μΌλν
- νμ΄μ
- DATABASE
- νλ‘λ³΄λ Έ
- API MarketPlace κΈλ‘λ² μν¬ν°μ¦
- RaspberryPi
- μ€ν½μ€λΉ
- ICT
- JOBνκ³
- λ°μ΄ν°λ² μ΄μ€
- appetizer
- μ€ν½λ ν
- mysql
- νμ΄μ곡λͺ¨μ
- SQL
- μλ°
- Today
- Total
miinsun
[BAEKJOON] λ°±μ€ κ·Έλν 4963 :: μ¬μ κ°μ λ³Έλ¬Έ
π¬ λ¬Έμ μ€λͺ
μ μ¬κ°νμΌλ‘ μ΄λ£¨μ΄μ Έ μλ μ¬κ³Ό λ°λ€ μ§λκ° μ£Όμ΄μ§λ€. μ¬μ κ°μλ₯Ό μΈλ νλ‘κ·Έλ¨μ μμ±νμμ€.
ν μ μ¬κ°νκ³Ό κ°λ‘, μΈλ‘ λλ λκ°μ μΌλ‘ μ°κ²°λμ΄ μλ μ¬κ°νμ κ±Έμ΄κ° μ μλ μ¬κ°νμ΄λ€.
λ μ μ¬κ°νμ΄ κ°μ μ¬μ μμΌλ €λ©΄, ν μ μ¬κ°νμμ λ€λ₯Έ μ μ¬κ°νμΌλ‘ κ±Έμ΄μ κ° μ μλ κ²½λ‘κ° μμ΄μΌ νλ€.
μ§λλ λ°λ€λ‘ λλ¬μΈμ¬ μμΌλ©°, μ§λ λ°μΌλ‘ λκ° μ μλ€.
π¨ μ μΆλ ₯ μ
μ λ ₯
- μ λ ₯μ μ¬λ¬ κ°μ ν μ€νΈ μΌμ΄μ€λ‘ μ΄λ£¨μ΄μ Έ μλ€.
- κ° ν μ€νΈ μΌμ΄μ€μ 첫째 μ€μλ μ§λμ λλΉ wμ λμ΄ hκ° μ£Όμ΄μ§λ€.
- wμ hλ 50λ³΄λ€ μκ±°λ κ°μ μμ μ μμ΄λ€.
- λμ§Έ μ€λΆν° hκ° μ€μλ μ§λκ° μ£Όμ΄μ§λ€. 1μ λ , 0μ λ°λ€μ΄λ€.
- μ λ ₯μ λ§μ§λ§ μ€μλ 0μ΄ λ κ° μ£Όμ΄μ§λ€.
μΆλ ₯
- κ° ν μ€νΈ μΌμ΄μ€μ λν΄μ, μ¬μ κ°μλ₯Ό μΆλ ₯νλ€.
μμ μ λ ₯ 1)
1 1
0
2 2
0 1
1 0
3 2
1 1 1
1 1 1
5 4
1 0 1 0 0
1 0 0 0 0
1 0 1 0 1
1 0 0 1 0
5 4
1 1 1 0 1
1 0 1 0 1
1 0 1 0 1
1 0 1 1 1
5 5
1 0 1 0 1
0 0 0 0 0
1 0 1 0 1
0 0 0 0 0
1 0 1 0 1
0 0
μμ μΆλ ₯ 1)
0
1
1
3
1
9
β
π» Main.java
- DFSλ₯Ό μ΄μ©ν νμ΄
- 0,0 μ λ°μΌλ©΄ μ’ λ£νλ λ°λ³΅λ¬Έ
- λκ°μ λ°©ν₯κΉμ§ μκ°ν΄μ λ²μ κ²μ¬λ₯Ό ν΄μ£Όμ
/* λ°±μ€ κ·Έλν - 4963 :: μ¬μ κ°μ */
import java.io.*;
import java.util.*;
public class Main {
// μ λ€ μμ λκ°μ μ’ν μ 보
static int[] dx = {0, 1, 1, 1, 0, -1, -1, -1};
static int[] dy = {1, 1, 0, -1, -1, -1, 0, 1};
static void DFS(int x, int y, int h, int w, int[][] map) {
map[x][y] = 0;
for(int i = 0; i < 8; i++) {
// λ€μμ μ¬ μ’ν
int nx = x + dx[i];
int ny = y + dy[i];
// μ§ν κ²½κ³ κ° κ²μ¬ and λ¨μ§ νμΈ
if(nx >= 0 && ny >= 0 && nx < h && ny < w && map[nx][ny] == 1) {
DFS(nx, ny, h, w, map);
}
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int w = Integer.parseInt(st.nextToken());
int h = Integer.parseInt(st.nextToken());
// w,hκ° 0μ΄λ©΄ μ’
λ£
if(w == 0 && h == 0)
break;
// 맡 μ 보 μ
λ ₯
int[][] map = new int[h][w];
for(int i = 0; i < h; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < w; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}
// λ
μΌλλ§ DFSμ§μ
int cnt = 0;
for(int i = 0; i < h; i++) {
for(int j = 0; j < w; j++) {
if(map[i][j] == 1) {
cnt++;
DFS(i, j, h, w,map);
}
}
}
sb.append(cnt).append('\n');
}
System.out.println(sb);
br.close();
}
}
'Algorithm > Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON] λ°±μ€ κ·Έλν 2178 :: λ―Έλ‘ νμ (0) | 2022.04.03 |
---|---|
[BAEKJOON] λ°±μ€ κ·Έλν 7576 :: ν λ§ν (0) | 2022.04.02 |
[BAEKJOON] λ°±μ€ κ·Έλν 2667 :: λ¨μ§λ²νΈλΆμ΄κΈ° (0) | 2022.04.02 |
[BAEKJOON] λ°±μ€ κ·Έλν 2331 :: λ°λ³΅μμ΄ (0) | 2022.03.31 |
[BAEKJOON] λ°±μ€ κ·Έλν10451 :: μμ΄ μ¬μ΄ν΄ (0) | 2022.03.30 |
Comments