11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.
출력
첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.
코드
from collections import deque
n = int(input())
connect = [[] for _ in range(n+1)]
parent = [0] * (n+1)
for _ in range(n-1):
a, b = map(int, input().split())
connect[a].append(b)
connect[b].append(a)
visited = [False] * (n+1)
visited[1] = True
q = deque([1])
while q:
now = q.popleft()
for nx in connect[now]:
if not visited[nx]:
parent[nx] = now
q.append(nx)
visited[nx] = True
for i in range(2, n+1):
print(parent[i])
'문제풀이 > DFS_BFS' 카테고리의 다른 글
[Python/파이썬] 백준 2178번 미로 탐색 (0) | 2023.02.25 |
---|---|
[Python/파이썬] 백준 1325번 효율적인 해킹 (0) | 2023.02.24 |
[Python/파이썬] 백준 1260번 DFS와 BFS (0) | 2023.02.24 |
[Python/파이썬] 백준 2606번 바이러스 (0) | 2023.02.24 |
[Python/파이썬] 백준 14466번 소가 길을 건너간 이유 6 (0) | 2023.01.17 |
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.
출력
첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.
코드
from collections import deque n = int(input()) connect = [[] for _ in range(n+1)] parent = [0] * (n+1) for _ in range(n-1): a, b = map(int, input().split()) connect[a].append(b) connect[b].append(a) visited = [False] * (n+1) visited[1] = True q = deque([1]) while q: now = q.popleft() for nx in connect[now]: if not visited[nx]: parent[nx] = now q.append(nx) visited[nx] = True for i in range(2, n+1): print(parent[i])
'문제풀이 > DFS_BFS' 카테고리의 다른 글
[Python/파이썬] 백준 2178번 미로 탐색 (0) | 2023.02.25 |
---|---|
[Python/파이썬] 백준 1325번 효율적인 해킹 (0) | 2023.02.24 |
[Python/파이썬] 백준 1260번 DFS와 BFS (0) | 2023.02.24 |
[Python/파이썬] 백준 2606번 바이러스 (0) | 2023.02.24 |
[Python/파이썬] 백준 14466번 소가 길을 건너간 이유 6 (0) | 2023.01.17 |