첫번째 코드
먼저 문제 이해를 잘못했었다...
꼭 ABCDE가 아니여도 5개가 얽힐 수 있으면 되는 것이다!!
DFS는 뭔가 그림으로 그리거나 하면 이해가 될 듯 하다
하지만 코드로 재귀로 들어가면 작성이 어려운 것 같다...
그래서 이번 코드도 책을 참고했다...
다음에는 꼭 혼자 풀어보고 싶다....... 기출문제에 많이 나오는 유형인데...
그래도 조금은 익숙해지고 있지 않을까..?ㅎㅎ;;
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10000)
n, m = map(int, input().split())
arrive = False
A = [[] for _ in range(n+1)]
visited = [False] * (n+1)
def DFS(now, depth):
global arrive
if depth == 5:
arrive = True
return
visited[now] = True
for i in A[now]:
if not visited[i]:
DFS(i, depth + 1)
visited[now] = False
for _ in range(m):
s, e = map(int, input().split())
A[s].append(e)
A[e].append(s)
for i in range(n):
DFS(i, 1)
if arrive:
break
if arrive:
print(1)
else:
print(0)
통과!
멘탈 잡아!!! 익숙해질꺼야!!! 다음 DFS 문제는 또 수정해서 풀어보자구..!!!
링크
https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Gold/13023.%E2%80%85ABCDE
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
027 미로 탐색 (2) | 2024.05.16 |
---|---|
028 트리의 지름 (0) | 2024.05.16 |
026 DFS와 BFS (0) | 2024.05.14 |
024 신기한 소수 (0) | 2024.05.09 |
023 연결 요소의 개수 (0) | 2024.05.09 |