소스 코드
def dfs(now,cnt):
global res
if now == b:
res = cnt
return
for w in range(1,n+1):
if board[now][w] == 1:
if check[w] == 0:
check[w] = 1
dfs(w,cnt+1)
check[w] = 0
return
# 전체사람 n
n = int(input())
# 계산해야하는 촌수
a,b = map(int,input().split())
# 관계의 개수 m
m = int(input())
board = [[0 for _ in range(n+1)] for _ in range(n+1)]
for q in range(m):
x,y = map(int,input().split())
board[x][y] = 1
board[y][x] = 1
check = [0 for _ in range(n+1)]
check[a] = 1
res = 0
dfs(a,0)
if res == 0:
print(-1)
else:
print(res)
해결 방법
1. 단순 dfs
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 균형잡힌 세상 - PYTHON #4949 (0) | 2023.07.15 |
---|---|
[BOJ/백준 코딩] 바이러스 - PYTHON #2606 (0) | 2023.07.09 |
[BOJ/백준 코딩] 근손실 - PYTHON #18429 (0) | 2023.06.25 |
[BOJ/백준 코딩] 회사 문화 1 - PYTHON #14267 (1) | 2023.06.17 |
[BOJ/백준 코딩] Final Price - PYTHON #28224 (0) | 2023.06.17 |