https://www.acmicpc.net/problem/1012
1012๋ฒ: ์ ๊ธฐ๋ ๋ฐฐ์ถ
์ฐจ์ธ๋ ์๋์ธ ํ๋๋ ๊ฐ์๋ ๊ณ ๋ญ์ง์์ ์ ๊ธฐ๋ ๋ฐฐ์ถ๋ฅผ ์ฌ๋ฐฐํ๊ธฐ๋ก ํ์๋ค. ๋์ฝ์ ์ฐ์ง ์๊ณ ๋ฐฐ์ถ๋ฅผ ์ฌ๋ฐฐํ๋ ค๋ฉด ๋ฐฐ์ถ๋ฅผ ํด์ถฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๊ฒ์ด ์ค์ํ๊ธฐ ๋๋ฌธ์, ํ๋๋ ํด์ถฉ ๋ฐฉ์ง์ ํจ๊ณผ์ ์ธ ๋ฐฐ์ถํฐ์ง๋ ์ด๋ฅผ ๊ตฌ์ ํ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค. ์ด ์ง๋ ์ด๋ ๋ฐฐ์ถ๊ทผ์ฒ์ ์์ํ๋ฉฐ ํด์ถฉ์ ์ก์ ๋จน์์ผ๋ก์จ ๋ฐฐ์ถ๋ฅผ ๋ณดํธํ๋ค. ํนํ, ์ด๋ค ๋ฐฐ์ถ์ ๋ฐฐ์ถํฐ์ง๋ ์ด๊ฐ ํ ๋ง๋ฆฌ๋ผ๋ ์ด๊ณ ์์ผ๋ฉด ์ด ์ง๋ ์ด๋ ์ธ์ ํ ๋ค๋ฅธ ๋ฐฐ์ถ๋ก ์ด๋ํ ์ ์์ด, ๊ทธ ๋ฐฐ์ถ๋ค ์ญ์ ํด์ถฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋ฐ์ ์ ์๋ค. (
www.acmicpc.net
์ฝ๋
import java.util.Scanner;
public class Main {
static int map[][];
static boolean visit[][];
static int M, N, K; // ๊ฐ๋ก, ์ธ๋ก, ๋ฐฐ์ถ ๊ฐฏ์
static int X, Y; // ๋ฐฐ์ถ์ ์์น
static int dx[] = {0, -1, 0, 1}; // ์ํ์ข์ฐ
static int dy[] = {-1, 0, 1, 0}; // ์ํ์ข์ฐ
static int count; // ์ต์ ํ์ํ ๋ฐฐ์ถํฐ์ง๋ ์ด ๋ง๋ฆฌ ์
public static void dfs(int y, int x) {
visit[y][x] = true;
for(int i=0; i<4; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
// nx, ny = ์ขํ์ ๋ฒ์, M*N ํฌ๊ธฐ์ด๋ฏ๋ก x, y์ขํ๊ฐ 0๋ณด๋จ ์ปค์ผํ๊ณ M, N๋ณด๋จ ์์์ผํจ.
if(nx>=0 && ny>=0 && nx<M && ny<N) {
if(map[ny][nx] == 1 && !visit[ny][nx]) {
dfs(ny, nx);
}
}
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
for(int i=0; i<T; i++) {
M = scan.nextInt(); // ๊ฐ๋ก
N = scan.nextInt(); // ์ธ๋ก
K = scan.nextInt(); // ๋ฐฐ์ถ ๊ฐฏ์
map = new int[N][M];
visit = new boolean[N][M];
count = 0;
for(int j=0; j<K; j++) {
int a = scan.nextInt(); // ๊ฐ๋ก
int b = scan.nextInt(); // ์ธ๋ก
map[b][a] = 1;
}
for(int j=0; j<N; j++) {
for(int k=0; k<M; k++) {
if(map[j][k] == 1 && visit[j][k] == false) {
dfs(j, k);
count ++;
}
}
}
System.out.println(count);
}
scan.close();
}
}
ํ์ด
๋ฐฑ์ค 2667๋ฒ - ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ
์ ๋ฌธ์ ์ ๋ ผ๋ฆฌ๊ฐ ๋๊ฐ์ ๋ฌธ์ ์ด๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 3040๋ฒ: ๋ฐฑ์ค ๊ณต์ฃผ์ ์ผ๊ณฑ ๋์์ด (0) | 2020.02.07 |
---|---|
[๋ฐฑ์ค] 2161๋ฒ: ์นด๋1(์๋ฎฌ๋ ์ด์ ) (0) | 2020.02.07 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ๊ธฐ์ง๊ตญ ์ค์น(๊ทธ๋ฆฌ๋) (0) | 2020.02.07 |
[๋ฐฑ์ค] 11586๋ฒ: ์ง์ ๊ณต์ฃผ๋์ ๋ง๋ฒ ๊ฑฐ์ธ(๋ฌธ์์ด) (0) | 2020.02.06 |
[๋ฐฑ์ค] 11724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์(dfs, bfs) (0) | 2020.02.06 |
๋๊ธ