관련 알고리즘 : dfs(깊이 우선 탐색)
코드 풀이
1) 함수 정의 : 친구관계 입력받아 자료 생성
def makerels(n, m):
relations = [[] for _ in range(n)]
visited = [0] * n
for i in range(m):
a, b = map(int, input().split())
relations[a].append(b)
relations[b].append(a)
return relations, visited
2) 함수 정의 : dfs 이용
def dfs(idx, depth):
global relations, visited
if depth == 4:
print(1)
exit()
for i in relations[idx]:
if visited[i] == 0:
visited[i] = 1
dfs(i, depth+1)
visited[i] = 0
3) 함수 정의 : 전체 인원에 대해 관계 탐색
def check(n):
for j in range(n):
visited[j] = 1
dfs(j,0)
visited[j] = 0
print(0)
4) 전체 인원수 및 친구 관계 수 입력받아 함수 실행시키기
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
relations, visited = makerels(N, M)
check(N)
1) 친구 관계 예시
2) 구현 코드 관련 번호 붙이기
3) 예시 관계에 관한 실행 코드들을 한 줄 씩 번호와 매칭하여 나열
→ 재귀 호출 시, 코드가 한 단계씩 깊이 들어가는 것으로 생각하여 안쪽 네모박스로 코드를 담아두었음.