💡문제접근
- DFS 탐색 알고리즘을 이용해 해결할 수 있는 문제였다. 모든 노드의 방문 여부를 체크하면서
각각의 사람의 친구관계를 DFS를 이용해 탐색하면서 깊이를 1만큼 증가하여 깊이가 4에 도달한다면 A ~ E까지 모두 친구관계가 성립하므로 1을 출력하고 아니라면 0을 출력하는 방식으로 코드를 작성했다.
💡코드(메모리 : 34176KB, 시간 : 1832ms)
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
N, M = map(int, input().strip().split())
camp = [[] for _ in range(N)]
visited = [False] * N
flag = False
for _ in range(M):
a, b = map(int, input().strip().split())
camp[a].append(b)
camp[b].append(a)
def DFS(v, depth):
global flag
visited[v] = True
if depth == 5:
flag = True
return
for i in camp[v]:
if not visited[i]:
visited[i] = True
DFS(i, depth + 1)
visited[i] = False
for i in range(N):
DFS(i, 1)
visited[i] = False
if flag:
break
if flag:
print(1)
else:
print(0)
💡소요시간 : 27m