본문 바로가기

트리2

[백준] 1068번 - 트리 [Java] https://www.acmicpc.net/problem/1068 1.  아이디어 트리의 루트부터 DFS 알고리즘으로 순회를 하며 리프 노드면 1을 반환하도록 구현했다.2. 문제풀이 DFS 메서드에서 리프 노드인지 판단하는 boolean 변수를 활용해 자식 노드로 이동이 가능하면 리프 노드가 아니므로 자식 노드를 루트로 하는 트리에서 얻은 리프 노드의 수를 반환하고 자식 노드로 이동이 불가능하면 리프 노드이므로 1을 추가로 반환하도록 구현했다. 루트 노드 하나만 존재하는 트리도 리프 노드가 1개인 점에 주의해야했다.3. 코드 import java.io.*;import java.util.*;public class Main { private static int N; private static in.. 2025. 2. 4.
[백준] 11725번 - 트리의 부모 찾기 [Java] https://www.acmicpc.net/problem/11725 1.  아이디어 각 노드의 부모를 저장하는 p 배열을 활용한 BFS, DFS로 해결할 수 있다.2. 문제풀이 BFS, DFS 모두 인접 리스트에서 인접 노드를 탐색하도록 구현이 되는데 이때 트리의 루트부터 탐색 시 다음 노드가 현재 노드의 자식이 됨을 활용했다. p 배열에서 인덱스 번호를 노드 번호, 값을 부모 노드의 번호를 저장하도록 한 후 출력하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main_BFS { public static void main(String[] args) throws IOException { BufferedReader .. 2025. 2. 3.