인프런 커뮤니티 질문&답변

조영규님의 프로필 이미지
조영규

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

15. 경로 탐색(그래프 DFS : Depth First Search)

이런 식으로 짜도 괜찮을까요?

작성

·

138

0

n,m = map(int, input().split())

gp=[[0]*n for _ in range(n)]

for _ in range(m):

    a,b = map(int, input().split())

    gp[a-1][b-1]=1

def DFS(L):

  global cnt

  if res[L]==n:

    cnt+=1

  else:

    for i,x in enumerate(gp[res[L]-1]):

      if x==1 and tmp[i]==0:

        res.append(i+1)

        tmp[i]=1

        DFS(L+1)

        res.pop()

        tmp[i]=0

cnt=0

res=[1]

tmp=[0]*n

tmp[0]=1

DFS(0)

print(cnt)

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네 append와 pop으로 해도 좋습니다.

조영규님의 프로필 이미지
조영규

작성한 질문수

질문하기