[PY] 18352 : 특정 거리의 도시 찾기

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

떠올리는데로 BFS를 시도하면 된다.

import sys
from collections import deque
input = sys.stdin.readline


cityCnt, roadCnt, dist, start = map(int, input().split())
roadList = [[] for _ in range(cityCnt + 1)]
visited = [-1] * (cityCnt + 1)

for i in range(roadCnt):
    go, arrive = map(int, input().split())
    roadList[go].append(arrive)

def BFS(strValue):
    queue = deque()
    queue.append(strValue)
    while queue:
        item = queue.popleft()


        if(visited[item[0]] != -1):
            continue

        visited[item[0]] = item[1]
        for nextItem in roadList[item[0]]:
            queue.append([nextItem, item[1] + 1])
    
BFS([start, 0])

isHave = False
for i in range(1, cityCnt + 1):
    if(visited[i] == dist):
        print(i)
        isHave = True

if not isHave:
    print("-1")

'문제풀이' 카테고리의 다른 글

[PY] <!> 1432 : 그래프 수정  (0) 2025.04.02
[PY] 2294 : 동전 2  (1) 2025.04.01
[PY] 14888 : 연산자 끼워넣기  (0) 2025.04.01
[PY] <!> 1707 : 이분 그래프  (0) 2025.04.01
[PY] 7569 : 토마토  (0) 2025.04.01