Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BFS
- 신입 사원
- 그리디
- 백준11047
- 동전0
- 프로그래머스43165
- 백준12845
- 펠린드롬
- 백준11000
- 백준10988
- 백준4796
- 백준1388
- 백준1969
- jsp
- sql
- 백준 1946
- 구현
- 타겟넘버
- 백준
- javascript
- 프로그래머스
- 강의실배정
- 백준2606
- Java
- dfs
- 알고리즘
- 자바
- Spring Framework MVC
- 바닥장식
- BFS/DFS
Archives
- Today
- Total
The Kkang's man
[ 자바 /Java ] 백준 11724 : 연결 요소의 개수 본문
문제
풀이
- BufferedReader와 StringTokenizer를 통해 정점 / 간선 / 연결정보 를 입력받는다.
- 인접행렬과 방문정보를 저장할 배열을 생성한다.
- 인접행렬에 연결정보를 저장한다.
- dfs 함수 생성
- 방문할 경우 visit 배열의 false를 true로 변경, cnt++
- 다시 true가 나올때까지 반복
- cnt를 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class ConnectedComp_11724 {
static int cnt = 0;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] graph = new int[N+1][N+1];
boolean[] visit = new boolean[N+1];
int i;
int u;
int v;
for(i=0; i<M; i++) {
st = new StringTokenizer(br.readLine());
u = Integer.parseInt(st.nextToken());
v = Integer.parseInt(st.nextToken());
graph[u][v] = 1;
graph[v][u] = 1;
}
// 인접행렬 확인
// for(i=1; i<N+1; i++) {
// for(int j=1; j<N+1; j++) {
// System.out.print(c[i][j]);
// if(j==v) {
// System.out.println();
// }
// }
// }
for(i=1; i<N; i++) {
if(!visit[i]) { // 정점에 방문하지 않았다면
dfs(graph, visit, i); // dfs 수행하고
cnt++;
}
}
System.out.println(cnt);
}
public static void dfs(int[][] graph, boolean[] visit, int v) {
visit[v] = true; // 방문하면 true로 변경
for(int i=0; i<graph[v].length; i++) {
if(graph[v][i]==1 && !visit[i]) { // 연결되어있고, 방문하지 않은 경우
dfs(graph, visit, i); // dfs 실행
}
}
if(visit[v] == true) {
return; // 완료시 dfs 종료
}
}
}
'알고리즘 > BFS&DFS' 카테고리의 다른 글
[ 자바 /Java ] 프로그래머스 43165 : 타겟넘버 (0) | 2021.07.04 |
---|---|
[ 자바 /Java ] 백준 2606 : 바이러스 (0) | 2021.06.27 |
[ 자바 / Java ] 백준 1388 : 바닥 장식 (0) | 2021.06.27 |
[ 자바 / Java ] 백준 1260 : DFS 와 BFS (0) | 2021.06.20 |
Comments