Notice
Recent Posts
Recent Comments
- Today
- Total
01-25 17:32
Tags
- dp
- MST
- OOP
- ์์์ ๋ ฌ
- ์๋ฐ์์ ์
- ์๋ฐ
- Graph
- PS
- pytorch
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ทธ๋ฆฌ๋
- database
- ๋ฐฑ์ค
- ๊ตฌํ
- ๋ฐฑ์๋
- ๋ฒจ๋งํฌ๋
- ์กธ์ ์ํ
- ์๋ฃ๊ตฌ์กฐ
- leetcode
- ๋ค์ต์คํธ๋ผ
- ์ธํด
- spring
- ํ๋ก๊ทธ๋๋จธ์ค
- BFS
- ๋ฌธ๋ฒ
- array
- Algorithm
- java
- CS
- tree
Link
Partially Committed
[๋ฐฑ์ค 11725] ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (JAVA) ๋ณธ๋ฌธ
๐ฅ Algorithm || ๋ฌธ์ ํ์ด
[๋ฐฑ์ค 11725] ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (JAVA)
WonderJay 2023. 1. 22. 11:52728x90
๋ฐ์ํ
SMALL
https://www.acmicpc.net/problem/11725
๋๋ณด๊ธฐ
๋ฌธ์
๋ฃจํธ ์๋ ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋, ํธ๋ฆฌ์ ๋ฃจํธ๋ฅผ 1์ด๋ผ๊ณ ์ ํ์ ๋, ๊ฐ ๋ ธ๋์ ๋ถ๋ชจ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ธ๋์ ๊ฐ์ N (2 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N-1๊ฐ์ ์ค์ ํธ๋ฆฌ ์์์ ์ฐ๊ฒฐ๋ ๋ ์ ์ ์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N-1๊ฐ์ ์ค์ ๊ฐ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋ ๋ฒํธ๋ฅผ 2๋ฒ ๋ ธ๋๋ถํฐ ์์๋๋ก ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
7
1 6
6 3
3 5
4 1
2 4
4 7
์์ ์ถ๋ ฅ 1
4
6
1
3
1
4
์์ ์ ๋ ฅ 2
12
1 2
1 3
2 4
3 5
3 6
4 7
4 8
5 9
5 10
6 11
6 12
์์ ์ถ๋ ฅ 2
1
1
2
3
3
4
4
5
5
6
6
์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ธ์ ๋ฆฌ์คํธ์ ์๋ฐฉํฅ ๊ทธ๋ํ ํํ๋ก ์ ์ฅํ ๋ค์,
๊ฐ ๋ ธ๋์ ๋ํ์ฌ DFS ๋ฅผ ๋๋ฉด์,
๋ถ๋ชจ ๋ ธ๋๋ฅผ ํ์ํ๋ฉด ๋๋ค.
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
static ArrayList<Integer>[] graph;
static boolean visited[];
static int parent[];
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream("src/input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stk;
int n = Integer.parseInt(br.readLine()); // ์ ์ฒด ๋
ธ๋์ ๊ฐ์
graph = new ArrayList[n + 1];
visited = new boolean[n + 1];
parent = new int[n + 1];
for (int i = 0; i <= n; i++)
graph[i] = new ArrayList<>();
for (int i = 0; i < n-1; i++) {
stk = new StringTokenizer(br.readLine());
int a = Integer.parseInt(stk.nextToken());
int b = Integer.parseInt(stk.nextToken());
graph[a].add(b);
graph[b].add(a);
}
for(int i = 1; i<=n; i++){
dfs(i);
}
for(int i = 2 ; i <= n; i++){
System.out.println(parent[i]);
}
}
static void dfs(int v){
visited[v] = true;
for(int cur : graph[v]){
if(!visited[cur]){
// ๋ฐฉ๋ฌธ ์ํ๋ค๋ฉด
parent[cur] = v;
dfs(cur);
}
}
}
}
728x90
๋ฐ์ํ
LIST
Comments