#71
거리
채점 준비중
시간 제한
1000ms
메모리 제한
256MB
제출
14
정답
10
맞힌 사람
10
정답 비율
71.4%

그래프에서 임의의 두 정점 사이의 거리(Distance)는 두 정점 사이의 최단 경로에 포함된 간선의 개수이다. BFS(breadth-first search, 너비 우선 탐색)를 사용하면 임의의 정점에서 나머지 모든 정점까지의 최단 거리를 구할 수 있다.

dist[x] = 1번 정점에서 x번 정점까지의 거리 배열을 유지하면서 위 그래프의 1번 정점에서 BFS를 시작해보자. dist[1] = 0으로 초기화한다.

dist[2] = dist[1] + 1, dist[4] = dist[1] + 1을 기록한다.

dist[3] = dist[2] + 1, dist[5] = dist[2] + 1을 기록한다.

dist[6] = dist[3] + 1을 기록한다. 그래프의 모든 정점까지의 거리를 저장하는 배열 dist가 완성되었다.

주어진 그래프의 1번 정점을 기준으로 나머지 모든 정점까지의 거리를 구해보자. 1번 정점에서 1번 정점까지 거리는 0이다.

입력

첫째 줄에 그래프의 정점의 개수와 간선의 개수 ~N, M(1 \le N, M \le 50)~이 주어진다. 그래프의 각 정점에는 1부터 N까지 번호가 매겨져 있다.

둘째 줄부터 M개의 줄에 그래프의 간선이 주어진다. 간선은 서로 다른 두 정점 ~u, v(1 \le u, v \le N)~를 잇는다. 주어지는 그래프는 단순 그래프(Simple graph)이다. 따라서 두 정점을 잇는 간선은 최대 한 개 존재할 수 있으며, 자기 자신을 잇는 간선은 없다.

또한 주어지는 그래프는 연결 그래프(Connected graph)이다. 따라서 1번 정점에서 BFS를 통해 모든 정점을 방문할 수 있다.

출력

주어진 그래프의 1번 정점에서 나머지 모든 정점까지의 거리를 출력한다.

예제 입력 1

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

예제 출력 1

0 1 2 1 2 3

힌트

BFS 과정 중에 유지하는 visit 배열 외에 거리를 따로 저장하는 dist 배열을 정의한 후에 채워줍니다.

코드 제출
로딩 중...
내 제출
아직 제출 내역이 없습니다.
맞은 사람
순위사용자언어시간메모리코드 길이
🥇202302534_김승현Python437ms10496KB537B
🥈202402699_오태영Python445ms10496KB662B
🥉202402751_한현욱Python447ms10620KB790B
4202102713_진민혁Java976ms26752KB1818B
5202402673_박기용Java985ms26752KB1596B
6202102622_김우솔Java994ms26880KB2061B
7202402748_한가현Java1236ms28416KB896B
8202402685_서진영Java1245ms28544KB870B
9202302602_이준휘Java1247ms28416KB834B
10202102659_안우진Java1805ms33664KB1394B
전체 제출
#사용자결과언어시간메모리코드 길이제출 시간
4010202302564_성준혁컴파일 에러C++--859B2024. 05. 25. 16:44
3629202402685_서진영정답Java1245ms28544KB870B2024. 05. 13. 11:54
3628202402656_김영수오답Java1240ms28416KB1129B2024. 05. 13. 11:33
3627202402748_한가현정답Java1236ms28416KB896B2024. 05. 13. 11:30
3626202302534_김승현정답Python437ms10496KB537B2024. 05. 13. 11:14
3625202302534_김승현런타임 에러Python439ms10496KB534B2024. 05. 13. 11:11
3624202302534_김승현런타임 에러Python443ms10496KB533B2024. 05. 13. 11:10
3622202402673_박기용정답Java985ms26752KB1596B2024. 05. 13. 11:04
3620202102622_김우솔정답Java994ms26880KB2061B2024. 05. 13. 10:53
3619202402751_한현욱정답Python447ms10620KB790B2024. 05. 13. 10:50
3614202402699_오태영정답Python445ms10496KB662B2024. 05. 13. 10:32
3612202302602_이준휘정답Java1247ms28416KB834B2024. 05. 13. 10:23
3605202102659_안우진정답Java1805ms33664KB1394B2024. 05. 13. 09:54
3577202102713_진민혁정답Java976ms26752KB1818B2024. 05. 13. 01:41