본문 바로가기

파이썬 알고리즘 풀이

56)인접행렬(가중치 방향그래프)

문제

아래 그림과 같은 그래프 정보를 인접행렬로 표현해보기

 

조건

 

 

제한사항

첫째 줄에는 정점의 수 N(2<=N<=20)와 간선의 수 M가 주어진다.

 

그 다음부터 M줄에 걸쳐 연 결정보와 거리비용이 주어진다.

 

인접행렬을 출력하세요.

 

문제풀이

N, M=map(int, input().split())
g=[[0]*(N+1) for _ in range(N+1)]
for i in range(M):
  a, b, k=map(int, input().split())
  g[a][b]=k

for i in range(1, N+1):
  for j in range(1, N+1):
    print(g[i][j], end=' ')
  print()

 

번외

무방향 그래프

N, M=map(int, input().split())
g=[[0]*(N+1) for _ in range(N+1)]
for i in range(M):
  a, b=map(int, input().split())
  g[a][b]=1
  g[b][a]=1

for i in range(1, N+1):
  for j in range(1, N+1):
    print(g[i][j], end=' ')
  print()

 

 

'파이썬 알고리즘 풀이' 카테고리의 다른 글

58)최대점수 구하기(DFS)  (0) 2021.11.08
57)경로 탐색(그래프 DFS)  (0) 2021.11.08
55)수들의 조합  (0) 2021.11.08
54)조합 구하기  (0) 2021.11.08
53)수열 추측하기  (0) 2021.11.04