본문 바로가기

알고리즘/BFS&DFS

백준 24479 시간초과 해결 (DFS)

 

 

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

def dfs(graph, v, visited):
    global cnt
    visited[v] = cnt
    for i in sorted(graph[v]):
        if visited[i] == 0:
            cnt += 1
            dfs(graph, i, visited)

n, m, r = map(int, input().split())
graph = [[] for _ in range(n + 1)]
visited = [0] * (n + 1)
cnt = 1

for _ in range(m):
    u, v = map(int, input().split())
    graph[u].append(v)
    graph[v].append(u)



dfs(graph, r, visited)

for i in range(1, n + 1):
    print(visited[i])

 

1) 처음에 이 부분 추가 안해줘서 런타임에러

sys.setrecursionlimit(10 ** 6)

2) 다음엔 10 ** 6 을 10* 6이라고 쓰고 런타임에러

이걸 계속 발견하지 못하고 왜 에러나지 한참 고민함.. 분명 코드는 틀린게 없는데..)

하하.. 다 나임 ㅋ ㅋ .. (그래도 뭐.. 30분이면.. 한참은 아닌가 ) 

반응형

'알고리즘 > BFS&DFS' 카테고리의 다른 글

백준 11725 트리의 부모 찾기  (0) 2024.01.28
백준 16953 (bfs)  (0) 2024.01.28
백준11724  (0) 2024.01.23
[BFS&DFS기본] 백준1260번 (Python)  (0) 2024.01.22
백준 2644(촌수 계산) -BFS  (0) 2023.08.24