본문 바로가기

PS/백준

[BOJ] 백준 11725 트리의 부모 찾기 (Swift)

반응형

문제

https://www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

풀이

문제 그대로 트리에서 각 노드의 부모를 찾는 문제입니다.

루트노드를 1로 정하였으므로, 입력에서 주어진 간선들을 연결시켜 줍시다.

1에서부터 BFS, DFS를 사용해서 노드들에 대해서 탐색한다면, 다음 탐색할 노드가 현재 노드의 자식노드가 됩니다.
트리의 부모를 찾기 위해 parent라는 Int 배열을 사용하였고, 값을 -1로 초기화하였습니다. 인덱스를 현재 노드, 값을 부모 노드의 번호로 사용하려고 합니다.
parent[4] = 3 이라면, 4의 부모노드는 3이 됩니다.

BFS 혹은 DFS를 사용해 트리를 탐색하면서, 탐색하지 않은 노드라면 (부모 노드의 번호가 -1이라면)
탐색할 노드의 부모노드의 번호를 현재노드로 설정하고, 탐색해줍니다.

그 이후, 2번 인덱스부터 부모노드의 번호를 출력해줍시다.

소스코드

후기

BFS, DFS를 사용해서 쉽게 풀 수 있는 문제였습니다.

반응형