인접 리스트 구현하기

3yeong·2023년 3월 22일
0

algorithm

목록 보기
6/9

문제 정의

강의 때 배운 내용을 이용하여, 가중치가 없는 무방향성 그래프가 주어졌을 때 이를 인접 리스트로 표현하는 프로그램을 작성하세요.

무방향성 그래프에서 어떤 간선 (u,v)
의 의미는 u에서 v로 가는 간선이 있다는 것을 의미하며, v에서 u로 가는 간선 또한 존재함을 의미합니다.

입력 형식

입력의 첫 줄에 테스트 케이스의 숫자 t가 주어진다.
각 테스트 케이스마다 입력은 아래와 같다.

첫 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (N≤1,000,M≤20,000)
그 다음 M개의 줄에 걸쳐서 무방향성 그래프의 간선 (u,v)
가 공백을 사이에 두고 입력된다.
u와 v는 항상 0부터 N−1사이의 정수이고, 두 정점 간 간선은 유일하다.

출력 형식

각 테스트 케이스에 대해 입력받은 그래프를 인접 리스트로 표시한 결과를 출력한다.
각 테스트 케이스에서 출력하는 i번째 줄은 정점 i에 연결된 정점들의 번호를 오름차순으로 하나씩 공백을 사이에 두고 출력한다.
정점 i에 연결된 어떠한 정점도 없다면 해당 줄은 빈 줄로 출력한다.

입력 예시

2
4 4
0 1
0 3
1 2
1 3
5 6
0 1
0 3
0 4
3 4
1 4
1 3

출력 예시

1 3
0 2 3
1
0 1
1 3 4
0 3 4

0 1 4
0 1 3

t = int(input())
for _ in range(t):

    N, M = map(int, input().split())

    Li = [[] for _ in range(N)]

    for i in range(M):
        u, v = map(int, input().split())
        Li[u].append(v)
        Li[v].append(u)

    sorted(Li)

    for i in range(N):
        Li[i].sort()
        print(*Li[i])
profile
초보 컴공

0개의 댓글