본문 바로가기

스터디 1일 1커밋

240225 [BOJ/백준] 24482. 알고리즘 수업- 깊이 우선 탐색 4

 

https://www.acmicpc.net/problem/24482

 

24482번: 알고리즘 수업 - 깊이 우선 탐색 4

깊이 우선 탐색 트리는 1, 2, 3, 4번 노드로 구성된다. 1번 노드가 루트이다. 1번 노드의 자식은 4번 노드이다. 4번 노드의 자식은 3번 노드이다. 3번 노드의 자식은 2번 노드이다. 5번 노드는 1번 노드

www.acmicpc.net


나의 코드

import sys
sys.setrecursionlimit(10 ** 6)

def dfs(cur, dep):
    visited[cur] = dep
    for w in adjl[cur]:
        if visited[w] == -1:
            dfs(w, dep+1)


N, M, R = map(int, sys.stdin.readline().split())
arr = [map(int, sys.stdin.readline().split()) for _ in range(M)]
adjl = [[] for _ in range(N+1)]
for u, v in arr:
    adjl[u].append(v)
    adjl[v].append(u)
visited = [-1] * (N+1)
for i in range(len(adjl)):
    adjl[i].sort(reverse=True)


dfs(R, 0)
for i in range(1, N+1):
    print(visited[i])

 

결과


아무리 수정해도 메모리 초과가 나길래 해결할 수 없는 문제라고 생각하고 넘겼는데 제출을 pypy로 했는지 물어보는 친구의 말에 확인해보니 pypy였다. python으로 제출하니 맞았다... 앞으로 메모리 초과때는 python으로!! 시간초과일 때는 pypy로!!