๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 13023๋ฒˆ_ABCDE

Dbswnstjd 2023. 5. 11. 16:24

๋ฌธ์ œ

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

 

13023๋ฒˆ: ABCDE

๋ฌธ์ œ์˜ ์กฐ๊ฑด์— ๋งž๋Š” A, B, C, D, E๊ฐ€ ์กด์žฌํ•˜๋ฉด 1์„ ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 13023๋ฒˆ ๋ฌธ์ œ - ABCDE
# dfs
import sys
input = sys.stdin.readline
sys.setrecursionlimit(100000)

n, m = map(int , input().split())
visited = [0]*(n)
graph = [ [] for _ in range(n) ]
answer = 0

for _ in range(m):
    a,b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)

def dfs(start , depth):
    global answer
    visited[start] = 1
    if depth == 4:
        answer = True
        return
    for i in graph[start]:
        if visited[i] == 0:
            dfs(i , depth+1)
    visited[start]=0

for i in range(n):
    dfs(i ,0)
    if answer:
        break
if answer:
    print(1)
else:
    print(0)

DFS๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. 

์นœ๊ตฌ๋“ค์˜ ๊ด€๊ณ„๋ฅผ graph์— ๋„ฃ์–ด์ฃผ๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์žฌ๊ท€๋ฅผ ๋Œ๋ฉด ๋œ๋‹ค.