https://www.acmicpc.net/problem/11725
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
Java 코드
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
static int n;
static int[] arr;
static ArrayList<Integer>[] list;
static boolean[] visit;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
n = sc.nextInt();
list = new ArrayList[n + 1];
arr = new int[n + 1];
visit = new boolean[n + 1];
for(int i = 1; i <= n; i++) list[i] = new ArrayList<Integer>();
for(int i = 1; i < n; 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++) sb.append(arr[i]+"\n");
System.out.println(sb);
}
public static void dfs(int num) {
visit[num] = true;
for(int i : list[num]) {
if(visit[i] == false) {
arr[i] = num;
dfs(i);
}
}
}
}
'백준' 카테고리의 다른 글
백준 1406 에디터(Java) (0) | 2023.02.08 |
---|---|
백준 2630 색종이 만들기(Java) (0) | 2023.02.08 |
백준 18870 좌표 압축(Java) (0) | 2023.02.07 |
백준 6603 로또(Java) (0) | 2023.02.07 |
백준 1182 부분수열의 합(Java) (0) | 2023.02.07 |