문제
방향그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프 로그램을 작성하기
조건
아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는

총 6 가지입니다.
그래프에서 경로란 방문한 노드는 중복해서 방문하지 않습니다.
제한사항
첫째 줄에는 정점의 수 N(2<=N<=20)와 간선의 수 M가 주어진다.
그 다음부터 M줄에 걸쳐 연 결정보가 주어진다.
총 가지수를 출력한다.
문제풀이
def go(v):
global cnt
if v==N:
cnt+=1
for x in path:
print(x, end=' ')
print()
else:
for i in range(1, N+1):
if g[v][i]==1 and ch[i]==0:
ch[i]=1
path.append(i)
go(i)
ch[i]=0
path.pop()
N, M=map(int, input().split())
g=[[0]*(N+1) for _ in range(N+1)]
ch=[0]*(N+1)
for i in range(M):
a, b=map(int, input().split())
g[a][b]=1
cnt=0
path=[]
path.append(1)
ch[1]=1
go(1)
print(cnt)'파이썬 알고리즘 풀이' 카테고리의 다른 글
| 59)휴가(삼성 SW역량평가 기출문제: DFS활용) (0) | 2021.11.08 |
|---|---|
| 58)최대점수 구하기(DFS) (0) | 2021.11.08 |
| 56)인접행렬(가중치 방향그래프) (0) | 2021.11.08 |
| 55)수들의 조합 (0) | 2021.11.08 |
| 54)조합 구하기 (0) | 2021.11.08 |