상세 컨텐츠

본문 제목

인접 행렬 python

Algorithm/inflearn python algorithm

by 개복신 개발자 2021. 8. 26. 09:52

본문

728x90
반응형

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

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

▣ 입력설명

첫째 줄에는 정점의 수 N(2<=N<=20)와 간선의 수 M가 주어진다. 그 다음부터 M줄에 걸쳐 연결정보와 거리비용이 주어진다.

▣ 출력설명

인접행렬을 출력하세요.

▣ 입력예제 1

6 9

1 2 7

1 3 4

2 1 2

2 3 5

2 5 5

3 4 5

4 2 2

4 5 5

6 4 5

 

▣ 출력예제1

0 7 4 0 0 0

2 0 5 0 5 0

0 0 0 5 0 0

0 2 0 0 5 0

0 0 0 0 0 0

0 0 0 5 0 0


풀이

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

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

-행렬 표현방식

g=[[0]*(n+1) for _ in range(n+1)]

~~

for i in range(1,n+1):

    for j in range(1,n+1):

        print(g[i][j], end=" ")

    print()

 

print(g)-->결과: [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 
0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],

 [0, 0, 0, 0, 0, 0]]

원소 6개씩 6개의 묶음으로 g가 구성되고 for문을 통해 5개의 행과 5개의 열인 표로 출력된다.

 

-표 내용 기입

for k in range(m):

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

    g[a][b]=r

a에서 b로 이동할 때 r의 거리 비용이 드는 것이다. 이를 입력 받아 g[a][b]=r 코드를 통해

표에 입력

반응형

'Algorithm > inflearn python algorithm' 카테고리의 다른 글

경로 탐색(그래프 DFS : Depth First Search) python  (0) 2021.08.26
수들의 조합(DFS)  (0) 2021.08.25
조합 구하기  (0) 2021.08.25
수열 추측하기  (0) 2021.08.25
순열 구하기  (0) 2021.08.25

관련글 더보기

댓글 영역