문제요약
나의 코드 및 설명
import sys
sys.setrecursionlimit(10**6)
def dfs(sn):
for i in board[sn]:
if visited[i] == 0:
visited[i] = sn
dfs(i)
n = int(input())
board = [[] for _ in range(n+1)]
for _ in range(n-1):
s,e = map(int, input().split())
board[s].append(e)
board[e].append(s)
visited = [0]*(n+1)
dfs(1)
for start_node in range(2,n+1):
print(visited[start_node])
피드백
DFS 연습을 위해 풀어본 문제. 문제를 처음 보고 이해가 잘 되지 않아 그림을 그려보고 풀이 방법을 유추해냈다.
'Baekjoon > DFS와 BFS' 카테고리의 다른 글
[백준] 2468 안전 영역 (실버1) / BFS (0) | 2023.04.26 |
---|---|
[백준] 11724 연결 요소의 개수 (실버2) / DFS (0) | 2023.04.26 |
[백준] 4963 섬의 개수 (실버2) / DFS, BFS (0) | 2023.04.26 |
[백준] 5014 스타트링크 (실버1) / BFS (2) | 2023.04.25 |
[백준] 2644 촌수계산 (실버2) / DFS, BFS (feat. 파이썬튜터) (0) | 2023.04.25 |