Algorithm Problem/Python
[python] 백준 - 13023. ABCDE
deo2kim
2021. 9. 4. 11:57
반응형
🤔문제 해결
문제는 이어져있는 친구가 4명인지 물어보는 것... ( 헷갈렸다 )
기본적인 DFS 문제이다. 중간에 조건을 줘서 잘 멈춰주기만 한다면 시간초과는 해결될 것이다.
💻소스 코드
import sys
def dfs(current, cnt):
global answer
if answer == 1: # 답을 이미 찾았다면 dfs 멈추기
return
if cnt == 5: # 답 찾았을 때 (친구가 4명)
answer = 1
return
visited[current] = 1
for neighbor in adj[current]:
if not visited[neighbor]:
dfs(neighbor, cnt + 1)
visited[current] = 0
input = sys.stdin.readline
answer = 0
N, M = map(int, input().split())
adj = [[] for _ in range(N)]
for _ in range(M):
a, b = map(int, input().split())
adj[a].append(b)
adj[b].append(a)
visited = [0 for _ in range(N)]
for i in range(N):
if not visited[i]:
dfs(i, 1)
print(answer)
📕문제 확인
출처: BACKJOON ONLINE JUDGE
반응형