반응형
문제
https://www.acmicpc.net/problem/11725
풀이
문제 그대로 트리에서 각 노드의 부모를 찾는 문제입니다.
루트노드를 1로 정하였으므로, 입력에서 주어진 간선들을 연결시켜 줍시다.
1에서부터 BFS, DFS를 사용해서 노드들에 대해서 탐색한다면, 다음 탐색할 노드가 현재 노드의 자식노드가 됩니다.
트리의 부모를 찾기 위해 parent라는 Int 배열을 사용하였고, 값을 -1로 초기화하였습니다. 인덱스를 현재 노드, 값을 부모 노드의 번호로 사용하려고 합니다.
parent[4] = 3 이라면, 4의 부모노드는 3이 됩니다.
BFS 혹은 DFS를 사용해 트리를 탐색하면서, 탐색하지 않은 노드라면 (부모 노드의 번호가 -1이라면)
탐색할 노드의 부모노드의 번호를 현재노드로 설정하고, 탐색해줍니다.
그 이후, 2번 인덱스부터 부모노드의 번호를 출력해줍시다.
소스코드
후기
BFS, DFS를 사용해서 쉽게 풀 수 있는 문제였습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 1967 트리의 지름 (Swift) (0) | 2023.05.15 |
---|---|
[BOJ] 백준 1167 트리의 지름 (Swift) (0) | 2023.05.15 |
[BOJ] 백준 11780 플로이드 2 (Swift) (0) | 2023.05.15 |
[BOJ] 백준 11779 최소비용 구하기 2 (Swift) (1) | 2023.05.15 |
[BOJ] 백준 9019 DSLR (Swift) (0) | 2023.05.15 |