문제 설명 및 제한사항
아이디어 및 해결 방법
코드
from collections import defaultdict, deque
D = [-1] * 100001
vis = [False] * 100001
def bfs(s, A):
q = deque()
D[s] = 0
vis[s] = True
q.append((s, 0))
while len(q) != 0:
u, d = q.popleft()
for v in A[u]:
if not vis[v]:
D[v] = d+1
vis[v] = True
q.append((v, d+1))
def solution(n, roads, sources, destination):
# destination로부터 시작해서 bfs를 돌려서 depth를 구합니다.
A = defaultdict(list)
for u, v in roads:
A[u].append(v)
A[v].append(u)
bfs(destination, A)
answer = [D[s] for s in sources]
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges