반응형

dfs 3

[백준] 1260 DFS 와 BFS Python

1. 문제그래프를 DFS 로 탐색한 결과와 BFS 로 탐색한 결과를 출력하는 프로그램을 작성하시오 정점의 개수 N, 간선의 개수 M, 탐색을 시작할 정점의 번호 V M 개의 줄에는 간선이 연결하는 두 정점의 번호가 주어지고, 입력으로 주어지는 간선은 양방향이다1 2. 알고리즘 분류* 그래프 이론* 그래프 탐색* 너비 우선 탐색* 깊이 우선 탐색3. 접근 방식DFS (Stack 이용) 와 BFS (deque 이용) 를 공부한 김에 관련 문제를 풀어봤다DFS, BFS 개념 정리 [TIL] DFS 깊이 우선 탐색 BFS 너비 우선 탐색그래프를 탐색하는 방법에는DFS 깊이 우선 탐색과 BFS 너비 우선 탐색이 있다 그래프에 대한 설명은 그래프 종류와 표현 방식에 정리해 놨다 1. DFSDepth-First Se..

알고리즘 2024.09.24

[TIL] DFS 깊이 우선 탐색 BFS 너비 우선 탐색

그래프를 탐색하는 방법에는DFS 깊이 우선 탐색과 BFS 너비 우선 탐색이 있다 그래프에 대한 설명은 그래프 종류와 표현 방식에 정리해 놨다 1. DFSDepth-First Search, 깊이 우선 탐색 최대한 깊이 내려가고, 더 이상 깊이 내려갈 곳이 없을 경우 옆으로 이동모든 노드를 방문하는 경우에 사용한다 * 스택 또는 재귀를 이용해서 구현 시간 복잡도 - 인접 리스트 O(V+E), 인접 행렬 O(V^2)   DFS 기본 원칙"앞으로 찾아 가야할 노드" 와 "이미 방문한 노드" 를 기준으로 데이터 탐색한다경로 찾기, 탐색 문제, 백트래킹, 사이클 탐지 등에 유용하다 DFS 코드 구현탐색 순서1 - 2 - 4 - 5 - 3 - 6 4 방문 후 2로 백트래킹하여 5를 방문하고, 다시 2 - 1로 백트래..

TIL/Python 2024.09.21

[TIL] 백트래킹 BackTracking

9663 N-Queen 을 풀다가 알고리즘 분류에 백트래킹이 있길래 한 번 개념을 정리해 본다 백트래킹 BackTracking재귀적으로 문제를 하나씩 풀어가면서 현재 재귀를 통해 확인 중인 노드 (상태) 가제한된 조건에 위배되는지 판단하고, 만약 해당 노드가 제한된 조건을 위배한다면 그 노드를 제외 (포기) 하고 다음 단계로 나아가는 방식 쉽게 말해, 현재 상태에서 가능한 모든 다음 상태를 탐색하다가조건에 맞지 않는 상태를 발견하면 그 상태를 배제하고,이전의 상태로 돌아가서 다른 가능한 경우를 탐색하는 방식이다  백트래킹 문제는 DFS (Depth-First Search 깊이 우선 탐색) 로 접근할 수 있다 DFS 는 그래프나 트리의 모든 노드를 깊이 있게 탐색하며조건에 맞지 않으면 바로 이전 상태로 ..

TIL/Python 2024.09.17
반응형