반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 11725번 트리의 부모 찾기 파이썬(Python)
1) 문제번호 : 11725번
2) 문제 출처
https://www.acmicpc.net/problem/11725
2. 문제
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
3. 제약사항
4. 입력
첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.
5. 출력
첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.
6. 풀이
- DFS 간단한 문제.
- 여기서 주의해야 할 점은 반복제한을 늘려줘야 한다.
- 기본적으로, 반복은 1000회로 되어 있기 때문에, sys.setrecursionlimit(10**9)로 늘려줬다.
7. 소스 코드
import sys
input=sys.stdin.readline
sys.setrecursionlimit(10**9)
N = int(input()) # 노드의 개수
# 트리
Tree = [[] for _ in range(N+1)]
#부모 노드 저장
Parents = [0 for _ in range(N+1)]
# 트리 구조 입력
for _ in range(N-1) :
a, b = map(int, input().split())
Tree[a].append(b)
Tree[b].append(a)
def DFS(start, tree, parents) :
# 연결된 노드들부터 parents[i]의 부모가 없으면 부모 설정 해주고, DFS 돌린다.
for i in tree[start] :
if parents[i] == 0 :
parents[i] = start
DFS(i, tree, parents)
DFS(1, Tree, Parents)
for i in range(2, N+1) :
print(Parents[i])
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 20124번 모르고리즘 회장님 추천 받습니다 파이썬(Python) (0) | 2021.06.16 |
---|---|
[백준 알고리즘] 백준 1629번 곱셈 파이썬(Python) (0) | 2021.06.15 |
[백준 알고리즘] 백준 16922번 로마 숫자 만들기 파이썬(Python) (0) | 2021.06.15 |
[백준 알고리즘] 백준 14248번 점프 점프 파이썬(Python) (0) | 2021.06.12 |
[백준 알고리즘] 백준 3184번 양 파이썬(Python) (0) | 2021.06.12 |
[백준 알고리즘] 백준 15720번 카우버거 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 6996번 애너그램 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 5576번 콘테스트 파이썬(Python) (0) | 2021.06.11 |
최근댓글