λ°μν
λ¬Έμ
https://www.acmicpc.net/problem/1012
1012λ²: μ κΈ°λ λ°°μΆ
μ°¨μΈλ μλμΈ νλλ κ°μλ κ³ λμ§μμ μ κΈ°λ λ°°μΆλ₯Ό μ¬λ°°νκΈ°λ‘ νμλ€. λμ½μ μ°μ§ μκ³ λ°°μΆλ₯Ό μ¬λ°°νλ €λ©΄ λ°°μΆλ₯Ό ν΄μΆ©μΌλ‘λΆν° 보νΈνλ κ²μ΄ μ€μνκΈ° λλ¬Έμ, νλλ ν΄μΆ© λ°©μ§μ
www.acmicpc.net
νμ΄
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static boolean[][] visited; // λ°©λ¬Έ μ¬λΆ
public static int[][] graph;
public static int count;
public static int[] dx = {0, -1, 0, 1};
public static int[] dy = {-1, 0, 1, 0};
/**
* μνμ’μ°λ‘ μ΄μ΄μ Έ μμΌλ©΄ νμ
*
* @param x
* @param y
*/
public void dfs(int x, int y) {
visited[x][y] = true;
for (int i = 0; i < 4; i++) {
int cx = x + dx[i];
int cy = y + dy[i];
if (cx >= 0 && cy >= 0 && cx < graph.length && cy < graph[0].length) {
if (graph[cx][cy] == 1 && visited[cx][cy] == false) {
dfs(cx, cy);
}
}
}
}
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Main mm = new Main();
int T = Integer.parseInt(br.readLine()); // ν
μ€νΈμΌμ΄μ€ μ
for (int i = 0; i < T; i++) {
count = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
int m = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
graph = new int[n + 1][m + 1];
visited = new boolean[n + 1][m + 1];
for (int j = 0; j < graph.length; j++) {
for (int l = 0; l < graph[0].length; l++) {
visited[j][l] = false; // λ°©λ¬Έμ¬λΆ μ΄κΈ°ν
}
}
for (int j = 0; j < k; j++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
graph[b][a] = 1;
}
for (int j = 0; j < graph.length; j++) {
for (int l = 0; l < graph[0].length; l++) {
if (visited[j][l] == false && graph[j][l] == 1) {
mm.dfs(j, l);
count++;
}
}
}
bw.write(String.valueOf(count) + "\n");
}
bw.flush();
bw.close();
}
}
μ λ΅
λ°μν
'π°ππππππππ > π±πππππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/Java] κ°μ₯ κ°κΉμ΄ μΈ μ¬λμ μ¬λ¦¬μ 거리 20529 (0) | 2023.12.23 |
---|---|
[λ°±μ€/Java] DFSμ BFS 1260 (0) | 2023.12.20 |
[λ°±μ€/Java] μ€ν μμ΄ 1874 (0) | 2023.12.13 |
[λ°±μ€/Java] μΉ΄λ λκΈ° 18115 (0) | 2023.12.11 |
[λ°±μ€/Java] μνκ°λ μ 1436 (0) | 2023.12.07 |