본문 바로가기
JAVA/백준

[Java] 백준 11725 트리의 부모 찾기- 트리 알아보기(1)

by 푸_푸 2022. 12. 20.
728x90

백준 11725 트리의 부모 찾기
문제
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.

출력

첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.


제출

import java.util.*;

public class Main {
	static int N;
	static boolean[] visited;
	static ArrayList<Integer> tree[];
	static int answer[];
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		visited = new boolean[N + 1];
		tree = new ArrayList[N + 1];
		answer = new int[N + 1];
		for (int i = 0; i < tree.length; i++) {
			tree[i] = new ArrayList<>();
		}
		for (int i = 1; i < N; i++) {
			int n1 = sc.nextInt();
			int n2 = sc.nextInt();
			tree[n1].add(n2);
			tree[n2].add(n1);
		}
		DFS(1);
		for(int i = 2; i <= N; i++) {
			System.out.println(answer[i]);
		}
	}
	static void DFS(int number) {
		visited[number] = true;
		for (int i : tree[number]) {
			if (!visited[i]) {
				answer[i] = number;
				DFS(i);
			}
		}
	}
}

예제

7
1 6
6 3
3 5
4 1
2 4
4 7

 

12
1 2
1 3
2 4
3 5
3 6
4 7
4 8
5 9
5 10
6 11
6 12

결과

백준 11725 트리의 부모 찾기

 

 

11725번: 트리의 부모 찾기

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

728x90

댓글