728x90
# 인접 행렬 구하기 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import sys
# 5 6 (정점의 갯수, 간선의 갯수)
# 1 2 (간선의 정보)
# 1 3
# 1 4
# 2 4
# 4 5
# 3 5
# Q1. 정점 X와 Y가 연결이 되어 있는가? (Yes or No)
# Q2. 정점 X와 연결이 되어 있는 모든 정점을 출력하시오.
# myGraph에서 x와 y가 연결이 되어 있으면 True 아니면 False를 반환
def isConnected(myGraph, x, y):
if myGraph[x][y] == 1: return True
else: return False
# 인접해 있는 모든 정점을 출력하시오.
def getAdj(myGraph, x, n):
# adjacent node : 인접해있는 노드
# n개의 정점을 갖는 myGraph에서 x와 연결되어 있는 모든 정점을 출력하는 함수
for i in range(1, n+1):
if myGraph[x][i] == 1:
print(i, end=' ')
print()
if __name__ == "__main__":
n, m = map(int, sys.stdin.readline().split()) # n : 정점의 갯수, m : 간선의 갯수
myGraph = [[0 for _ in range(10)] for _ in range(10)]
mInfo = []
for i in range(m):
a, b = map(int, sys.stdin.readline().split()) # a와 b가 연결이 되어 있다.
myGraph[a][b] = 1
myGraph[b][a] = 1
for i in range(1, n+1):
for j in range(1, n+1):
print(myGraph[i][j], end=' ')
print()
print(isConnected(myGraph, 1, 2))
print(isConnected(myGraph, 1, 5))
getAdj(myGraph, 2, n)
getAdj(myGraph, 4, n)
|
cs |
#인접리스트 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import sys
# 1 : 2 3 4
# 2 : 1 4
# 3 : 1 5
# 4 : 1 2 5
# 5 : 3 4
'''
5 6
1 2
1 3
1 4
2 4
3 5
4 5
'''
if __name__ == "__main__":
input = sys.stdin.readline
n, m = map(int, input().split())
myGraph = [[] for _ in range(n+1)]
# 인접 리스트 구현
for _ in range(m):
a, b = map(int, input().split())
myGraph[a].append(b)
myGraph[b].append(a)
# 출력
for i in range(n+1):
print(' i : ', i, end=' ')
for j in myGraph[i]:
print(j, end=' ')
print()
print(myGraph)
|
cs |
입력
5 6
1 2
1 3
1 4
2 4
3 5
4 5
출력
1 : 2 3 4
2 : 1 4
3 : 1 5
4 : 1 2 5
5 : 3 4
{1: [2, 3, 4], 2: [1, 4], 3: [1, 5], 4: [1, 2, 5], 5: [3, 4]}
반응형
'CS > 알고리즘_개념' 카테고리의 다른 글
최단경로알고리즘-[다익스트라-Dijkstra's Algorithm) (0) | 2021.06.07 |
---|---|
그래프 깊이우선탐색(DFS), 너비우선탐색(BFS) (0) | 2021.06.03 |
연속부분최대의합을 통한 문제풀이 접근법 (0) | 2021.05.28 |
이진탐색(Binary Search), 순차탐색(Sequential Search) + Parametric Search (0) | 2021.05.19 |
병합정렬(merge sort) (0) | 2021.05.18 |