Algorithm

[백준 13023] ABCDE

moguogu 2024. 9. 1. 19:05

문제

https://www.acmicpc.net/problem/13023

 

코드 

import sys
from collections import deque
sys.setrecursionlimit(10**9)

def Input_Data():
    input = sys.stdin.readline
    N, M = map(int, input().strip().split())
    adj = {i : [] for i in range(N)}
    for _ in range(M):
        a, b = map(int, input().strip().split())
        adj[a].append(b)
        adj[b].append(a)
    return N, M, adj

def Dfs(start, depth):
    global isFriend 
    visited[start] = True 
    if depth == 4: # 조건을 만족함 -> 5명의 친구 관계 찾음 
        isFriend = True
        return
    for x in adj[start] : 
        if visited[x] == 0: 
            visited[x] = True
            Dfs(x, depth+1)
            if isFriend : return #이미 찾았으면 더 이상 반복하지 않음 
    visited[start] = False # 다른 경로에서는 반복 x --> 백트래킹: 다시 방문 할 수 있도록 

N, M, adj = Input_Data()
visited = [0] * (N)
isFriend = False
for i in range(N):
    Dfs(i, 0)
    if isFriend : break
if isFriend : print(1)
else: print(0)

'Algorithm' 카테고리의 다른 글

[백준 5014] 스타트링크  (0) 2024.09.02
[백준 1504] 특정한 최단 경로  (0) 2024.09.01
[백준 6593] 상범 빌딩  (0) 2024.08.31
[백준 1068] 트리  (0) 2024.08.21
[백준 10026] 적록색약  (2) 2024.07.24