์ต์ฅ๊ฒฝ๋ก ๊ตฌํ๊ธฐ โ DFS
๐ ๊ณ ๋ คํด์ผํ ์
- ์ต๋จ๊ฒฝ๋ก๊ฐ ์๋ ์ต์ฅ๊ฒฝ๋ก๋ฅผ ๊ตฌํด์ผํ๋ค.
- ์ธ์ ๋ฆฌ์คํธ ๋๋ 2์ฐจ์ ๋ฐฐ์ด์ ํ์ฉํ๋ค.
- ๊ฐ ์ ์ ๋ง๋ค ๋ฐฉ๋ฌธํด์ ์ต์ฅ๊ฒฝ๋ก๋ฅผ ๊ตฌํด์ผํ๋ค.
- DFS๋ก ์งํํ๊ณ ๋ฐฉ๋ฌธํ๋ ๊ณณ์ ํ์ํ๊ณ , ๋ณต๊ตฌ์์ผ์ผํ๋ค.
โจ BFS๋ก ํ๋ฉด ์๋๋ ์ด์
๋๋ณด๊ธฐ
BFS๋ ์์ ๋ ธ๋์์๋ถํฐ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ๋จ๊ณ์ ์ผ๋ก ํ์์ ์งํํ๋ฉฐ, ํ ๋ ธ๋์์ ๋ค์ ๋ ธ๋๋ก ์ด๋ํ ๋ ์ด์ ์ ๋ฐฉ๋ฌธํ ๋ ธ๋๋ฅผ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ฅ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ๋ฌธ์ ์๋ ์ ํฉํ์ง ์์ผ๋ฉฐ ๊ฐ ๋ ธ๋๋ฅผ ์ต๋จ๊ฒฝ๋ก๋ก ๋ฐฉ๋ฌธํ๋ ๋ฌธ์ ์์ ์ ํฉํ๋ค.
๐น๏ธ ํ์ด๊ณผ์
- ์ ์ ๊ณผ ๊ฐ์ ์ ์ ๋ณด๋ฅผ 2์ฐจ์๋ฐฐ์ด ๋๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ์ฌ ์ ์ฅํ๋ค.
- ๊ฐ ์ ์ ๋ง๋ค DFS ํจ์๋ฅผ ํธ์ถํ์ฌ ์ต์ฅ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ค.
- ์์ ๋ ธ๋๋ง๋ค ์ต๋ ์ด๋๊ฑฐ๋ฆฌ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ ์ ์์ ํ์ํด์ผ ํ๋ค. โ visit ๋ฐฐ์ด false๋ก ๋ณต๊ตฌ ํ์ !
๐ฉ๐ป ์ ์ฒด ์ฝ๋
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class SWEA_2814_์ต์ฅ๊ฒฝ๋ก {
static int[][] arr;
static boolean[] visit;
static int n,m,max;
static void dfs(int cnt, int x) {
visit[x]=true;
for(int i=1; i<=n; i++) {
// ์ด๋ฏธ ๋ฐฉ๋ฌธํ ๊ณณ์ ํ์ํ ํ์ ์๋ค.
if(arr[x][i]==1 && !visit[i]) {
dfs(cnt+1, i);
visit[i] = false;
}
}
max = Math.max(max, cnt);
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for(int t=1; t<=T; t++) {
st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
arr = new int[n+1][n+1];
visit = new boolean[n+1];
for(int i=0; i<m; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
arr[x][y]=1;
arr[y][x]=1;
}
for(int i=1; i<=n; i++) {
dfs(1, i);
visit[i] =false;
}
bw.write("#" + t+ " " + max + "\n");
}
bw.flush();
bw.close();
}
}
'์๊ณ ๋ฆฌ์ฆ > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] 1954 ๋ฌํฝ์ด ์ซ์ - Java (1) | 2023.11.13 |
---|