[백준] 24481번 알고리즘 수업 - 깊이 우선 탐색 3

거북이·2023년 2월 25일
0

백준[실버2]

목록 보기
51/81
post-thumbnail

💡문제접근

  • DFS 기본 코드 + 별도로 오름차순 정렬 수행
  • 노드 정점 방문 여부

💡코드(메모리 : 68132KB, 시간 : 632ms)

import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.readline

N, M, R = map(int, input().strip().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
    u, v = map(int, input().strip().split())
    graph[u].append(v)
    graph[v].append(u)

for i in range(len(graph)):
    graph[i].sort()
visited = [-1] * (N+1)

def DFS(x):
    for i in graph[x]:
        if visited[i] == -1:
            visited[i] = visited[x] + 1
            DFS(i)

visited[R] = 0
DFS(R)
for i in visited[1:]:
    print(i)

💡소요시간 : 7m

0개의 댓글