https://www.acmicpc.net/problem/2644
전형적인 특정 값 사이의 dfs 깊이 구하기 문제
import sys
input = sys.stdin.readline
N = int(input())
target1, target2= map(int,input().split())
visited = [False] * (N+1)
s = [[] for _ in range(N+1)]
M = int(input())
for _ in range(M):
u,v = map(int,input().split())
s[u].append(v)
s[v].append(u)
chk = False
def dfs(n, start, end):
global chk
visited[start] = True
if start == end:
print(n)
chk = True
exit()
for i in s[start]:
if not visited[i]:
dfs(n+1, i, end)
dfs(0,target1, target2)
if not chk:
print(-1)
회고.
bfs로 푸는게 나을지 dfs로 푸는게 나을지 아직 고민하는 것을 봐서 아직 더 열심히 해야할 듯 싶다
'PS' 카테고리의 다른 글
[BOJ] Python 백준 Yes or yes(25195) (0) | 2024.11.08 |
---|---|
[BOJ] Python 백준 특정 거리의 도시 찾기(18352) (0) | 2024.11.07 |
[Progammers] Python 프로그래머스 모음사전(84512) (0) | 2024.11.03 |
[BOJ] Python 백준 알고리즘 수업 - 너비 우선 탐색 1(24444) (0) | 2024.11.01 |
[BOJ] Python 백준 알고리즘 수업 - 깊이 우선 탐색 1(24479) (0) | 2024.10.31 |
댓글