01-08 08:57
Recent Posts
Recent Comments
Tags
- ์๋ฐ
- ํ์ด์ฌ
- SQL
- Spring
- ์จ์ผ๋ํ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- python
- mysql
- ์คํฝ์ค๋น
- Naver Cloud
- ํ์ด์๊ณต๋ชจ์
- ์ด๋ธ์
- API๋ง์ผํ๋ ์ด์ค
- TSQL
- ์๋์ด๋ ธ
- DB
- ICT๋ฉํ ๋ง
- DATABASE
- ์กํ๊ณ
- appetizer
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JOBํ๊ณ
- linux
- ict๊ณต๋ชจ์
- ํ์ด์
- RaspberryPi
- ์คํฝ๋ ํ
- ICT
- ํ๋ก๋ณด๋ ธ
- Java
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค DFS 2606 :: ๋ฐ์ด๋ฌ์ค ๋ณธ๋ฌธ
๐ฌ ๋ฌธ์ ์ค๋ช
์ ์ข ๋ฐ์ด๋ฌ์ค์ธ ์ ๋ฐ์ด๋ฌ์ค๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ํ๋๋ค. ํ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ ์ปดํจํฐ์ ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด 7๋์ ์ปดํจํฐ๊ฐ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ํ์. 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ์ ๋ฐ์ด๋ฌ์ค๋ 2๋ฒ๊ณผ 5๋ฒ ์ปดํจํฐ๋ฅผ ๊ฑฐ์ณ 3๋ฒ๊ณผ 6๋ฒ ์ปดํจํฐ๊น์ง ์ ํ๋์ด 2, 3, 5, 6 ๋ค ๋์ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
ํ์ง๋ง 4๋ฒ๊ณผ 7๋ฒ ์ปดํจํฐ๋ 1๋ฒ ์ปดํจํฐ์ ๋คํธ์ํฌ์์์ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
์ด๋ ๋ 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ๋ค. ์ปดํจํฐ์ ์์ ๋คํธ์ํฌ ์์์ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ์งธ ์ค์๋ ์ปดํจํฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค.
- ์ปดํจํฐ์ ์๋ 100 ์ดํ์ด๊ณ ๊ฐ ์ปดํจํฐ์๋ 1๋ฒ ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค.
- ๋์งธ ์ค์๋ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ ์์ ์๊ฐ ์ฃผ์ด์ง๋ค.
- ์ด์ด์ ๊ทธ ์๋งํผ ํ ์ค์ ํ ์์ฉ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ์ ๋ฒํธ ์์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
- 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ์ ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ฒซ์งธ ์ค์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1)
7
6
1 2
2 3
1 5
5 2
5 6
4 7
์์ ์ถ๋ ฅ 1)
4
โ
๐ป Main.java
- dfs, bfs๋ฅผ ์ด์ฉํด ํ ์ ์๋๋ฐ, dfs๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ์ดํ๋ค.
- ๋คํธ์ํฌ์ ์ ๋ณด๋ฅผ network[][]์ ์ ์ฅํด์ค๋ค.
- ์ด๋, 1-2์ 2-1๋ ๊ฐ์ ์ ๋ณด์ด๋ ๋ชจ๋ ์ ์ฅํด์ค๋ค
- ์ด๋ฏธ ๋ฐฉ๋ฌธํ ๋ฐฐ์ด์ ๋ฐฉ๋ฌธํ์ง ์๋๋ก visit[]์ ๋ฐฉ๋ฌธ ์ ๋ฌด๋ฅผ ์ ์ฅํด์ค๋ค.
/* ๋ฐฑ์ค DFS์ BFS - 2606 :: ๋ฐ์ด๋ฌ์ค */
import java.io.*;
import java.util.*;
public class Main {
static boolean[][] network;
static boolean[] visit;
static int answer = 0;
static int N, M;
public static void dfs(int n) {
// ๋ฐฉ๋ฌธ ํ์
visit[n] = true;
for(int i = 1; i <= N; i++) {
// ๋คํธ์ํฌ ์ ๋ณด๊ฐ ์๊ณ , ๋ฐฉ๋ฌธํ์ง ์์ ์ปดํจํฐ ๋ฐฉ๋ฌธ
if(network[n][i] && !visit[i]) {
answer++;
visit[i] = true;
dfs(i);
}
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
M = Integer.parseInt(br.readLine());
network = new boolean[N+1][N+1];
visit = new boolean[N+1];
// network ์ ๋ณด ์
๋ ฅ
for(int i = 0; i < M; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int s = Integer.parseInt(st.nextToken());
int e = Integer.parseInt(st.nextToken());
network[s][e] = true;
network[e][s] = true;
}
// 1๋ฒ ์ปดํจํฐ๋ถํฐ ๊น์ด ํ์ ์์
dfs(1);
System.out.println(answer);
br.close();
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ฆฌ๋ 1700 :: ๋ฉํฐํญ ์ค์ผ์ค๋ง (0) | 2022.06.07 |
---|---|
[BAEKJOON] ๋ฐฑ์ค DFS 1012 :: ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2022.04.23 |
[BAEKJOON] ๋ฐฑ์ค ๋์ ํฉ 16139 :: ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ (0) | 2022.04.22 |
[BAEKJOON] ๋ฐฑ์ค ๋์ ํฉ 2559 :: ์์ด (0) | 2022.04.22 |
[BAEKJOON] ๋ฐฑ์ค ๋์ ํฉ 11659 :: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (0) | 2022.04.22 |
Comments