*주의*해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다.
- 알고리즘 유형 : 그래프 탐색 기본
- 출처 링크 : https://velog.io/@jewon119/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B8%B0%EC%B4%88-%EB%84%88%EB%B9%84-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89BFS-%EA%B9%8A%EC%9D%B4-%EC%9A%B0%EC%84%A0-%ED%83%90%EC%83%89DFS
- 출처 링크 : https://lgphone.tistory.com/93
그래프 탐색 기본
- 그래프의 개념은 내일 다시 정리 예정
깊이 우선 탐색(depth-first search, DFS)
1) 전위 순회(pre-order traversal)
- 순서 : 루트 노드 >>> 왼쪽 노드 >>> 오른쪽 노드 순으로 방문한다.
- 코드 :
def preorder(root):
if root != 0:
yield root.value
preorder(root.left)
preorder(root.right)
2) 중위 순회(in-order traversal)
- 순서 : 왼쪽 노드 >>> 루트 노드 >>> 오른쪽 노드 순으로 방문한다.
- 코드 :
def inorder(root):
if root != 0:
inorder(root.left)
yield root.value
inorder(root.right)
3) 후위 순회(post-order traversal)
- 순서 : 왼쪽 노드 >>> 오른쪽 노드 >>> 루트 노드 순으로 방문한다.
- 코드 :
def postorder(root):
if root != 0:
postorder(root.left)
postorder(root.right)
yield root.value
너비 우선 탐색(breadth-first search, BFS)
1) 탐색 순서
- 계단식으로 해당 Node와 같은 레벨에 있는 형제노드를 먼저 탐색
2) 두개의 queue가 필요
- need_visit : 방문 예정(순서가 매겨진)인 방문 대기 queue
- visited : 이미 방문 한 (순차적으로) 방문 완료 queue
3) 갈 수 있는 곳을 방문대기 queue에 넣고 queue의 앞부터 하나씩 빼서 탐색
반응형
'Develop > Algorithm' 카테고리의 다른 글
[문제풀이]백준_11725_트리 부모 찾기(DFS) (0) | 2022.10.09 |
---|---|
[DFS/BFS]백준_1260_DFS와 BFS(이론 정리) (0) | 2022.10.08 |
[문제풀이]백준_16564_히오스 프로게이머(이분탐색) (0) | 2022.10.05 |
[큐]queue 정리_1(백준_11866_요세푸스 문제 0) (0) | 2022.10.04 |
[문제풀이]백준_2504_괄호의 값(스택_2, enumerate함수) (0) | 2022.10.04 |