728x90
https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
풀이)
처음에 이 문제 보고 아 어렵네,,, 했는데 저기 문제에 뭐라고 써있는지 알아?
초등부..?
2004년도 초딩들,,, 대단했네,,,
이거 보고 갑자기 잠이 깨고 머리가 돌더니 문제를 풀어버림
내가 본선 중등부까지는 비벼봐야되지 않겄어?!
이건 인접리스트로 풀었다
배열로 주어지는게 아니니까 이중 ArrayList로 선언하고 풀었다
저번에 풀었던 백준 1260번(DFS와 BFS) 였나? 그 문제랑 비슷하게 풀었다!
좀만 더 풀어서 DFS 완전 익숙해져야지!!
자바 코드)
import java.util.ArrayList;
import java.util.Scanner;
public class boj2606 {
static int n;
static int m;
static ArrayList<ArrayList<Integer>> network = new ArrayList<>();
static boolean[] visited;
static int count = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
for(int i=0;i<=n;i++) {
network.add(new ArrayList<>());
}
visited = new boolean[n+1];
for(int i=0;i<m;i++) {
int a = sc.nextInt();
int b = sc.nextInt();
network.get(a).add(b);
network.get(b).add(a);
}
dfs(1);
System.out.println(count);
}
static public void dfs(int v) {
visited[v] = true;
for(int num : network.get(v)) {
if(!visited[num]) {
visited[num] = true;
dfs(num);
count++;
}
}
}
}
이상 초딩야미였슈~
빠잉!
728x90
'코딩테스트 > BOJ' 카테고리의 다른 글
[JAVA] 백준 2512번 - 예산 (0) | 2022.02.22 |
---|---|
[JAVA] 백준 14916번 - 거스름돈 (0) | 2022.02.18 |
[JAVA] 백준 2178번 - 미로 탐색 (0) | 2022.02.17 |
[JAVA] 백준 2667번 - 단지번호붙이기 (0) | 2022.02.16 |
[JAVA] 백준 1260번 - DFS와 BFS (0) | 2022.02.15 |
댓글