본문 바로가기
🔅코딩테스트 공부🔅/❗백준

[백준] 18352번 특정 거리의 도시 찾기(python)

by 윤무무 2023. 3. 20.

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

 

1. 난이도 실버2

 

2. 내가 작성한 풀이
from collections import deque
import sys
input = sys.stdin.readline

INF = int(1e9)

n, m, k, x = map(int, input().rstrip().split())

distance = [INF] * (n+1) #최단거리 저장
distance[x] = 0
maps = [[] for _ in range(n+1)] #그래프 관계 저장

for i in range(m):
    a,b = map(int, input().rstrip().split())
    maps[a].append(b)

queue = deque()
queue.append(x)

while queue: 
    popX = queue.popleft()
    for i in maps[popX]:
        if distance[i] > distance[popX] + 1:
            distance[i] = distance[popX] + 1
            queue.append(i)

cnt = False

for i in range(1,n+1):
    if distance[i] == k:
        print(i)
        cnt = True

if cnt == False:
    print(-1)

 

다익스트라 알고리즘을 이용해서 문제를 풀었다.

 

토익스피킹 공부하느라 코테에 소홀했더니 다~~까묵었네

 

댓글