๋ฐฑ์ค 11725, 24480๋ฒ ํ์ด์ฌ
import sys
input = sys.stdin.readline
n = int(input())
graph = dict()
visited = [0 for _ in range(n+1)]
for _ in range(n-1):
n1, n2 = map(int, input().split())
if (n1 in graph):
graph[n1].append(n2)
else:
graph[n1] = [n2]
if (n2 in graph):
graph[n2].append(n1)
else:
graph[n2] = [n1]
stack = [1]
print('graph :: ', graph)
while stack:
p = stack.pop() # ๋ถ๋ชจ ๋
ธ๋
for i in graph[p]: # p์ ์์ ๋
ธ๋ ํ์
if not visited[i]:
# ์์ง ํ์ ์ํ ๋
ธ๋ ์์ผ๋ฉด ํ์ํ ๋
ธ๋๋ก ์ถ๊ฐ
visited[i] = p # ์์ ๋
ธ๋์ ๋ถ๋ชจ๋ฅผ ์ ์ฅ
stack.append(i)
for i in range(2, n+1): # 1์ ์ ์ธํ ๋
ธ๋์ ๋ถ๋ชจ ๋
ธ๋๋ง ์ถ๋ ฅ
print(visited[i])
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
n, m, v = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited = [0 for _ in range(1+n)]
for _ in range(m):
n1,n2 = map(int, input().split())
graph[n1].append(n2)
graph[n2].append(n1)
for i in range(1, n+1):
graph[i] = reversed(sorted(graph[i]))
# ๋ด๋ฆผ์ฐจ์ ํ์์ ์ํด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
turn = 1
def dfs(s):
global turn
visited[s] = turn # ๋ฐฉ๋ฌธ์์
turn += 1
for i in graph[s]:
if not visited[i]: # ๋ฐฉ๋ฌธํ๋์ง ํ์ธ
dfs(i)
dfs(v)
for i in range(1, n+1):
print(visited[i])
DFS ๊ฐ๋
๋ฌธ์ ํ๋ฉด์ ์ดํด์ค..
์ฌ๊ท๋ก๋ ํ์ด๋ณด๊ณ .. ๋ฐ๋ณต๋ฌธ๋ง์ผ๋ก ํ์ด๋ณด๊ณ ..
๋ค์์ ์์ฉ ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ์์
์ ๋ง ์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค!