백준 13023 : ABCDE (파이썬)

Yibangwon·2022년 3월 1일
0

알고리즘 문제풀이

목록 보기
18/60


정답 코드

import sys

N, M = map(int, sys.stdin.readline().split())

arr = [[] for _ in range(2001)]
for i in range(M):
    a, b = map(int, sys.stdin.readline().split())
    arr[a].append(b)
    arr[b].append(a)

answer = [0]
v = [False for _ in range(2001)]


def dfs(start, cnt):
    if cnt == 4:
        answer[0] = 1
        return
    for k in arr[start]:
        if not v[k]:
            v[k] = True
            dfs(k, cnt + 1)
            v[k] = False


for i in range(N):
    if answer[0] == 1:
        break
    v[i] = True
    for j in arr[i]:
        v[j] = True
        dfs(j, 1)
        v[j] = False
        if answer[0] == 1:
            break
    v[i] = False

print(answer[0])

문제 유형

그래프 탐색 (DFS)

profile
I Don’t Hope. Just Do.

0개의 댓글