For Programmer
백준 11725번 파이썬 문제풀이(트리의 부모 찾기) 본문
728x90
간단히 dfs 나 bfs로 노드를 타고 들어가면서 그전의 노드를 부모로 설정해주는 부모를 가리키는 리스트하나만 만들면 된다. 두개 모두 코드를 올려놨다.
import sys
from collections import deque
sys.setrecursionlimit(5000)
input = sys.stdin.readline
def dfs(cur):
visited[cur] = True
for nxt in graph[cur]:
if not visited[nxt]:
parent[nxt] = cur
dfs(nxt)
def bfs(start):
queue = deque([start])
visited[start] = True
while queue:
v = queue.popleft()
for i in graph[v]:
if not visited[i]:
visited[i] = True
parent[i] = v
queue.append(i)
N = int(input()) # 간선의 개수는 노드개수 - 1
graph = [[] for _ in range(N + 1)]
for i in range(N - 1):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
visited = [False] * (N + 1)
parent = [0] * (N + 1)
bfs(1)
for i in parent[2:]:
print(i)
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 15681번 파이썬 문제풀이(트리와 쿼리) (0) | 2022.03.23 |
---|---|
SWEA 1240번 파이썬 문제풀이(단순 2진 암호코드) (0) | 2022.03.23 |
백준 1726번 파이썬 문제풀이(로봇) (0) | 2022.03.22 |
SWEA 1952번 파이썬 문제풀이(수영장) (0) | 2022.03.22 |
백준 2206번 파이썬 문제풀이(벽 부수고 이동하기) (0) | 2022.03.21 |
Comments