728x90
반응형
첫번째 코드
DFS를 이용해서 부모 노드를 answer 리스트에 저장해 가는 방법을 이용하여 코드를 작성한다.
뭔가 tree를 다룬 문제의 느낌이라기 보다는 DFS 문제를 다루는 느낌이다.
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
n = int(input())
tree = [[] for _ in range(n+1)]
visited = [False] * (n+1)
answer = [0] * (n+1)
for _ in range(1, n):
s, e = map(int, input().split())
tree[s].append(e)
tree[e].append(s)
def DFS(x):
visited[x] = True
for i in tree[x]:
if not visited[i]:
answer[i] = x
DFS(i)
DFS(1)
for i in range(2, n+1):
print(answer[i])
DFS와 많이 친해지고 있는 기분!
통과!
링크
반응형
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
069 문자열 집합 (미해결) (0) | 2024.07.30 |
---|---|
068 트리 (0) | 2024.07.25 |
065 다리 만들기 2 (미해결) (0) | 2024.07.23 |
066 불우이웃돕기 (미해결) (0) | 2024.07.23 |
064 최소 스패닝 트리 (0) | 2024.07.18 |