๐ programmers ๋ถ๋๋ณต๊ท level3
์ด์ ํ๋ ๋ฌธ์ ๋ค.
๋ชป ํ์์๋๋ฐ ํ ๊ฐ์ง๋ฅผ ๋ ์๊ฐํ์ง ๋ชป ํ๋ค.
sources ๋ฅผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๋ฆฌ๊ธฐ ๋ณด๋ค destination์ ์ถ๋ฐ์ง๋ก ์ก์ผ๋ฉด ๋ชจ๋ ์ถ๋ฐ์ง์์ ๊ฑฐ๋ฆฌ๊ฐ ๋์ค๋๊ฑฐ๊ฑฐ๋...
์ด ์ฌ์ค์ ๊นจ๋ฌ์์๋ ์ง์ง... ๋๋ฌด... ์์ฌ์ ๋ค.
๋ฐ์๋ ๋์ ํ์ด์ด๋ค.
- ํ์ด
from collections import deque, defaultdict def solution(n, roads, sources, destination): roads_path = defaultdict(list) for a, b in roads: roads_path[a].append(b) roads_path[b].append(a) queue = deque([destination]) visited = {x:-1 for x in range(1, n+1)} visited[destination] = 0 while queue: cur_road = queue.popleft() cur_dis = visited[cur_road] for nxt_road in roads_path[cur_road]: if visited[nxt_road] == -1: visited[nxt_road] = cur_dis + 1 queue.append(nxt_road) return [visited[x] for x in sources]
์ด์ ์ ๊ฐ์ด visited key ๊ฐ์๋ n์ ๊ฐ์๋งํผ ์ด๊ธฐํ ํด์ฃผ๊ณ value ๋ -1๋ก ์ด๊ธฐํ ํด์ฃผ์๋ค.
๋ฐฉ๋ฌธํ ๊ธธ์ 0์ผ๋ก ๋ฐ๊พธ์ด ์ฃผ์๋ค.return ๊ฐ์ visited์์ sources์ ๋ด๊ฒจ์๋ ์ซ์๋ค๋ง ๋ฝ์์ result์ ๋ด์์ฃผ์๋ค.
์ด์ง ๊ผฐ ๋ฌธ์ ์ด์ง๋ง ์ ์๊ฐํด๋ณด๋ฉด ํ ์ ์์๋ ๋ฌธ์ ์๋ค.
๋ ์ฒ๋ผ ํ ์๊ฐ์ ํ ์์ ๊ฐํ๋ ๊ฒ ๋ง ์๋์๋ค๋ฉด..ใ
ํ ์คํธ ์ผ์ด์ค 10~15 ๋ฒ ๊ณผ ๊ฐ์ด ๊ตฌ์กฐ์ ์ผ๋ก bfs ์ ์ถ๋ฐ์ง๊ฐ ์ฌ๋ฌ ๊ณณ ์ด์๋ค๋ฉด ํ ์ ์๋ ๋ฌธ์ ์๋ค.์ค๋ ๋!