๋ฌธ์
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๋ฒ ๋ฌธ์ - ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ
from collections import deque
import sys
input = sys.stdin.readline
n, m, k, x = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
visited = [False for _ in range(n+1)]
dist = [0 for _ in range(n+1)]
answer = []
def dfs(x):
queue = deque([x])
visited[x] = True
while queue:
now = queue.popleft()
for i in graph[now]:
if visited[i] == False:
dist[i] = dist[now] + 1
visited[i] = True
queue.append(i)
if dist[i] == k:
answer.append(i)
dfs(x)
if answer:
answer.sort()
for i in answer:
print(i)
else:
print(-1)
์ฒ์์ DFS๋ก ํ๋ค๊ฐ ์๊พธ ํค๋ฉ๊ณ ์๊ฐ์ด๊ณผ๊ฐ ๋์์ BFS๋ก ํ์๋ค.
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Python] [BFS/DFS] 7562๋ฒ_๋์ดํธ์ ์ด๋ (0) | 2022.11.16 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] [BFS/DFS] 14502๋ฒ_์ฐ๊ตฌ์ (0) | 2022.11.16 |
๐ฉ [๋ฐฑ์ค] [Python] [Class3] 5430๋ฒ_AC (0) | 2022.11.16 |
๐ฉ [๋ฐฑ์ค] [Python] [Class3] 11403๋ฒ_๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2022.11.15 |
๐ฉ [๋ฐฑ์ค] [Python] [Class3] 11286๋ฒ_์ ๋๊ฐ ํ (0) | 2022.11.14 |