ë°ìí
묞ì
íìŽ
ìŽ ë¬žì ë ê·žëí íìì íµíŽ íŽê²°í ì ììŒë©°, 1ë² ì»Žíší°ë¥Œ ììì ìŒë¡ ê¹ìŽ ì°ì íì(DFS)ì ìííì¬ ë°ìŽë¬ì€ê° ì íëë 컎íší°ì ì륌 ê³ì°íìë€.
ê° ì»Žíší° ê° ì°ê²° êŽê³ë ìžì 늬ì€ížë¡ íííìê³ , 방묞í 컎íší°ë visited ë°°ìŽë¡ 첎í¬íì¬ ì€ë³µ ê°ìŒì ë°©ì§íìë€.
ìµì¢ ì ìŒë¡ 1ë² ì»Žíší°ë¥Œ ì ìží ê°ìŒë 컎íší°ì ì륌 ì¶ë ¥íìë€.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static List<Integer>[] network;
public static boolean[] visited;
public static int answer = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int computer = Integer.parseInt(br.readLine()); // 컎íší°ì ê°ì
int node = Integer.parseInt(br.readLine()); // 컎íší° ìì ì
network = new ArrayList[computer + 1];
visited = new boolean[computer + 1];
for (int i = 0; i < network.length; i++) {
network[i] = new ArrayList<>();
}
for (int i = 0; i < node; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
network[x].add(y); // 컎íší° ì°ê±ž ì§êž°
network[y].add(x);
}
dfs(1); // 1ì êž°ì€ìŒë¡ íì
System.out.println(answer);
}
/**
* dfsë¡ íìíêž°
* @param node
*/
public static void dfs(int node) {
visited[node] = true;
for (int i = 0; i < network[node].size(); i++) {
if (!visited[network[node].get(i)]) {
answer++;
dfs(network[node].get(i));
}
}
}
}
ì ëµ
ë°ìí
'ð°ðððððððð > ð±ððððððð' 칎í ê³ ëŠ¬ì ë€ë¥ž êž
[ë°±ì€/Java] ì°ê²° ììì ê°ì 11724 ê·žëí íì(DFS) (1) | 2025.06.30 |
---|---|
[ë°±ì€/Java] 2Ãn íìŒë§ 11726 ë©ëªšì ìŽì (1) | 2025.06.29 |
[ë°±ì€/Java] FizzBuzz 28702 (1) | 2025.06.27 |
[ë°±ì€/Java] ì°ì»Ž í€íž 30802 (1) | 2025.06.26 |
[ë°±ì€/Java] ISBN 14626 (1) | 2025.06.24 |