01-09 18:44
Recent Posts
Recent Comments
Tags
- ํ์ด์๊ณต๋ชจ์
- Spring
- ํ์ด์
- ICT๋ฉํ ๋ง
- ์ด๋ธ์
- ํ๋ก๋ณด๋ ธ
- ict๊ณต๋ชจ์
- appetizer
- python
- mysql
- ์๋ฐ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์คํฝ๋ ํ
- ์กํ๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- DB
- SQL
- ์๋์ด๋ ธ
- API๋ง์ผํ๋ ์ด์ค
- RaspberryPi
- ์จ์ผ๋ํ
- linux
- ICT
- ํ์ด์ฌ
- Naver Cloud
- JOBํ๊ณ
- TSQL
- ์คํฝ์ค๋น
- DATABASE
- Java
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 11725:: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
Algorithm/Baekjoon
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 11725:: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ
miinsun 2022. 4. 5. 00:41
๐ฌ ๋ฌธ์ ์ค๋ช
๋ฃจํธ ์๋ ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋, ํธ๋ฆฌ์ ๋ฃจํธ๋ฅผ 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
โ
๐ป Main.java
- ์ฒ์์๋ ๋ฌธ์ ์ด๋ฆ์ ๋ณด๊ณ ํธ๋ฆฌ๋ก ํธ๋์ง ์๊ณ ์๋ฌด ์์ฌ์์ด ํธ๋ฆฌ๋ก ํ์๋ค.
- ํ์ง๋ง ์ด ๋ฌธ์ ๋ ํธ๋ฆฌ๋ก ํ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋ , DFS๋ BFS๋ก ํ์ดํด์ผํ๋ค... ใ
- ์๋ ์ฝ๋๋ ํธ๋ฆฌ๋ก ํผ ๋ฐฉ๋ฒ๊ณผ, ๋ฐฉ๋ฒ ๋ชจ๋ ์ฌ๋ ธ๋ค.
ํธ๋ฆฌ๋ก ํผ ๋ฐฉ๋ฒ (์๊ฐ ์ด๊ณผ)
/* ๋ฐฑ์ค ๊ทธ๋ํ - 11725 :: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ */
import java.util.*;
import java.io.*;
// ๋
ธ๋
class Node {
public int data;
Node lt, rt, ut;
Node (int data){
this.data = data;
}
Node (int data, Node ut){
this.data = data;
this.ut = ut;
}
}
class Tree{
Node root = new Node (1);
StringBuilder sb = new StringBuilder();
// ์
๋ ฅ
void add(Node root, int a, int b) {
// ๋
ธ๋๊ฐ ๋น์ด์์ผ๋ฉด ์ข
๋ฃ
if(root == null) return;
else if(root.data == a) { // ์ฐพ๊ณ ์๋ ๋
ธ๋๋ฅผ ์ฐพ์ผ๋ฉด ์ ๋ณด ์
๋ ฅ
if(root.rt == null)
root.rt = new Node(b, root);
else
root.lt = new Node(b, root);
}
else if(root.data == b) {
if(root.rt == null)
root.rt = new Node(a, root);
else
root.lt = new Node(a, root);
}
else { // ์ผ์ชฝ ํฌ์ธํฐ, ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ก ๋
ธ๋ ์ฐพ๊ธฐ
add(root.lt, a, b);
add(root.rt, a, b);
}
}
void search(Node root, int a) {
if(root == null) return;
if(root.data == a) { // ์ฐพ๊ณ ์๋ ๋
ธ๋๋ฅผ ์ฐพ์ผ๋ฉด ์ ๋ณด ์
๋ ฅ
sb.append(root.ut.data).append('\n');
}
else {
search(root.lt, a);
search(root.rt, a);
}
}
void print(int n) { // 2 ~ n๊น์ง ๋ถ๋ชจ ๋
ธ๋์ถ
for(int i = 2; i <= n; i++) {
search(root, i);
}
System.out.println(sb);
}
}
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
// ํธ๋ฆฌ ์ ๋ณด ์
๋ ฅ
Tree tree = new Tree();
for(int i = 0; i < n - 1; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
tree.add(tree.root, Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
tree.print(n);
br.close();
}
}
DFS, ArrayList ๋ฐฐ์ด์ ์ด์ฉํ ๋ฐฉ๋ฒ
/* ๋ฐฑ์ค ๊ทธ๋ํ - 11725 :: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ - dfs */
import java.util.*;
import java.io.*;
public class Main {
static List<Integer>[] list;
static int[] parent;
static boolean[] check;
static int n;
static void dfs(int l) {
// ์ค๋ณต ์ฒดํฌ
check[l] = true;
// ๊ฐ์ฅ ์ฒ์์ ๋์ค๋ ๊ฐ์ด ๋ฌด์กฐ๊ฑด ๋ถ๋ชจ
for(int i : list[l]) {
// ์ค๋ณต ๊ฒ์ฌ
if(!check[i]) {
parent[i] = l;
dfs(i);
}
}
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
list = new ArrayList[n + 1];
parent = new int[n+1];
check = new boolean[n+1];
// ArrayList ๋ฐฐ์ด์์ฑ
for(int i = 1; i <= n; i++) {
list[i] = new ArrayList<>();
}
// ๋
ธ๋ ์ ๋ณด ์
๋ ฅ
for(int i = 0; i < n -1; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
list[a].add(b);
list[b].add(a);
}
dfs(1);
for(int i = 2; i <= n; i++) System.out.println(parent[i]);
sc.close();
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 1654 :: ๋์ ์๋ฅด๊ธฐ (0) | 2022.04.07 |
---|---|
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 1967 :: ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ1991 :: ํธ๋ฆฌ ์ํ (0) | 2022.04.04 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 2146 :: ๋ค๋ฆฌ ๋ง๋ค๊ธฐ (0) | 2022.04.04 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 2178 :: ๋ฏธ๋ก ํ์ (0) | 2022.04.03 |
Comments