-
[백준 2606:바이러스]Java, Dfs백준 알고리즘 2018. 11. 9. 23:22
오랜만에 알고리즘 문제를 풀었더니 간단한 문제도 잘 안 풀려서 허우적거리고 있네요. 흐흐
2606 문제는 dfs로 전체를 탐색해주면 되는 문제입니다.
1. 연결된 네트워크를 배열로 표현하고
2. 첫번째 컴퓨터에서 dfs를 호출합니다.
3. 첫번째 컴퓨터와 연결된 다른 컴퓨터에서 또 dfs를 호출합니다.
물론 전에 방문하지 않은 네트워크라는 조건을 달아줘야 합니다!
저는 visited라는 1차원 배열을 써서 방문을 체크해주었습니다.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package mnth_11;import java.util.Scanner;public class BJ2606_DFS {static int N_com, N_conn;static int map[][];static int cnt;static int visited[];public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);N_com = scan.nextInt();N_conn = scan.nextInt();map = new int[N_com+1][N_com+1];visited = new int[N_com+1];for(int i=0;i<N_conn;i++){int a = scan.nextInt();int b = scan.nextInt();map[a][b] = map[b][a] = 1;}dfs(1);System.out.println(cnt);}static void dfs(int start){visited[start] = 1;for(int i=1;i<N_com+1;i++){if(map[start][i] == 1 && visited[i] == 0){dfs(i);cnt++;}}}}cs '백준 알고리즘' 카테고리의 다른 글
[백준 2455 : 지능형기차] Java, 시뮬레이션 (0) 2019.01.06 [백준 2667 : 단지번호 붙이기] Java, DFS (0) 2018.11.14 [백준 2667 : 단지번호 붙이기] Java, BFS (0) 2018.11.14 [백준1697 : 숨바꼭질] Java,BFS (0) 2018.11.10 [백준 2606:바이러스]Java, bfs (0) 2018.11.10