고짬기록

[백준 18352] 특정 거리의 도시 찾기 Python3 본문

알고리즘 공부 ⌨/백준

[백준 18352] 특정 거리의 도시 찾기 Python3

고짬이 2021. 9. 26. 17:29

문제 주소 및 출처 ❕

https://www.acmicpc.net/problem/18352

 

18352번: 특정 거리의 도시 찾기

첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개

www.acmicpc.net

 

문제 : 18352 특정 거리의 도시 찾기

 

언어 : Python3

 

 

💬 나의 코드

📌 Python

import sys
input = sys.stdin.readline

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

g = [[] for _ in range(N+1)]
for _ in range(M):
    A, B = map(int, input().split())
    g[A].append(B)

dis = [9999999999] * (N+1)
queue = [X]
dis[X] = 0
while queue:
    v = queue.pop(0)
    for w in g[v]:
        if dis[v]+1 < dis[w] and dis[v]+1 <= K:  # K보다 긴 거리는 생각하지 말자벌레
            dis[w] = dis[v]+1
            queue.append(w)

ans = []
for i in range(1, N+1):
    if dis[i] == K:
        ans.append(i)

if len(ans):
    for x in ans:
        print(x)
else:
    print(-1)
Comments