Skip to content

Commit 82e14aa

Browse files
authored
Create 1.py
1 parent 5826343 commit 82e14aa

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

13/1.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from collections import deque
2+
3+
# 도시의 개수, 도로의 개수, 거리 정보, 출발 도시 번호
4+
n, m, k, x = map(int, input().split())
5+
adj = [[] for _ in range(n + 1)]
6+
7+
# 모든 도로 정보 입력 받기
8+
for _ in range(m):
9+
a, b = map(int, input().split())
10+
adj[a].append(b)
11+
12+
# 모든 노드에 대한 최단 거리 초기화
13+
distance = [-1] * (n + 1)
14+
distance[x] = 0 # 출발 도시까지의 거리는 0으로 설정
15+
16+
# BFS 수행
17+
q = deque([x])
18+
while q:
19+
now = q.popleft()
20+
# 이동할 수 있는 모든 도시를 확인
21+
for next_node in adj[now]:
22+
# 아직 방문하지 않은 도시라면
23+
if distance[next_node] == -1:
24+
# 최단 거리 갱신
25+
distance[next_node] = distance[now] + 1
26+
q.append(next_node)
27+
28+
# 최단 거리가 K인 모든 도시의 번호를 오름차순으로 출력
29+
check = False
30+
for i in range(1, n + 1):
31+
if distance[i] == k:
32+
print(i)
33+
check = True
34+
35+
# 만약 최단 거리가 K인 도시가 없다면, -1 출력
36+
if check == False:
37+
print(-1)

0 commit comments

Comments
 (0)