Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이것이 자바다
- flatten
- 데이터베이스
- 생활코딩
- 데이터베이스 개론
- 카카오클라우드스쿨2기
- MySQL
- LeNet
- 머신러닝(딥러닝)
- JavaScript
- Database
- 개발자
- tensorflow
- Java
- 파이썬
- 머신러닝
- 데이터베이서
- pandas
- Python
- reshape
- 딥러닝
- 생활코딩 머신러닝야학
- 판다스
- CNN
- 연산자
- 야학
- 생활코딩 데이터베이스
- 머신러닝야학
Archives
- Today
- Total
IT's 우
[java]백준 11725- 트리의 부모 찾기, 트리 and DFS 깊이우선탐색 본문
728x90
트리
노드와 에지로 연결된 그래프의 특수한 형태
트리의 특징
- 순환 구조(cycle)를 지니고 있지 않고, 1개의 루트 노드가 존재
- 루트 노드를 제외한 노드는 단 1개의 부모 노드를 가지고 있음
- 트리의 부분 트리(subtree) 역시 트리의 모든 특징을 따름
구성 요소 | 설명 |
노드 | 데이터의 index와 value를 표현하는 요소 |
에지 | 노드와 노드의 연결 관계를 나타내는 선 |
루트 노드 | 트리에서 가장 상위에 존재하는 노드 |
부모 노드 | 두 노드 사이의 관계에서 상위 노드에 해당하는 노드 |
자식 노드 | 두 노드 사이의 관계에서 하위 노드에 해당하는 노드 |
리프 노드 | 트리에서 가장 하위에 존재하는 노드(자식 노드가 없는 노드) |
서브 트리 | 전체 트리에 속한 작은 트리 |
https://www.acmicpc.net/problem/11725
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
코드
package javaCodingTest;
import java.util.*;
public class j11725 {
static ArrayList<Integer>[] nodes; // 연결된 노드 리스트
static int[] parents_result; // 정답
static boolean[] visited; // 방문 확인
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 노드 개
visited= new boolean[N+1]; //방문 확인
nodes = new ArrayList[N + 1]; //트리
parents_result = new int[N + 1]; // 부모 노드 정답
for(int i=0;i<=N;i++) { // 초기화
nodes[i]=new ArrayList<>();
}
for (int i = 1; i < N; i++) {// 연결된 노드 리스트에 저장
int a = sc.nextInt();
int b = sc.nextInt();
nodes[a].add(b);
nodes[b].add(a);
}
DFS(1);
for(int i=2;i<=N;i++) {
System.out.println(parents_result[i]);
}
}
private static void DFS(int number) { // 부모노드 후 읽어서 부모노드 제외 자식노드!
visited[number]=true;
for(int i: nodes[number]) {
if(!visited[i]) {
parents_result[i]=number;
DFS(i);
}
}
}
}
풀이
DFS와 트리 사용
1이 루트 노드이므로 루트 노드부터 자식 노드를 읽어서
루트 노드 외에는 자식 노드이므로 자식 노드의 자식 노드를 읽으며 부모 노드 입력
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[java]백준 14015번 퇴사 (0) | 2023.03.30 |
---|---|
[java]백준 1068번: 트리(트리, DFS) (0) | 2022.11.06 |
[Java]백준 16953번: A -> B (BFS, 너비 우선 탐색 알고리즘) (0) | 2022.10.26 |
[java]백준 1747번: 소수&팰린드롬, prime number 소수, 아리토스테네스의 체 원리, 제곱 Math.pow(a,b) (0) | 2022.10.05 |
[java]백준 1456번: 거의 소수, prime number 소수, 제곱근 Math.sqrt(N), 아리토스테네스의 체 원리, 제곱 Math.pow(a,b) (0) | 2022.10.04 |