알고리즘 - 완전 탐색

Bloooooooooooooog..·2023년 5월 11일
0

완전 탐색

말 그대로 모든 경우의 수를 탐색하는 방법이다. 모든 경우의 수를 따지기 때문에 Brute Force(난폭한 힘, 짐승같은 힘)이라고 부르기도 한다.

조건

완전 탐색을 사용하기 위한 두 가지 조건이 있다.

1. 문제 해결이 가능한가?

2. 효율적으로 동작하는가?

모든 경우의 수를 따지는 방법이기 때문에, 일반적으로 완전탐색의 경우 효율적으로 작동하지는 않는다.

사용 기법

❗자세한 알고리즘의 흐름과 사용 예시에 대해서는 별도의 게시물로 작성할 예정이다. 여기서는 개괄적인 의미만 정리한다.

1. 단순 완전 탐색 (Brute Force)

자물쇠 0000~9999까지 모든 경우의 수를 따지듯, 모든 해를 대입해보는 방법이다. 효율적이기 힘든 방법으로 잘 사용되지 않는 방법이다.

2. 순열(Permutation)

순열은 임의의 수열을 다른 순서로 연산하는 방식을 의미한다. 같은 데이터가 입력된 수열이지만 순서에 따라 의미가 있을 때, 또 이 순서로 연결되는 수열을 찾아낼 수 있는 경우를 계산할 수 있다.

3. 재귀(Recursive)

재귀는 자기 자신을 호출한다는 의미이다. 재귀 함수를 생성하면 자기 자신을 호출해서 쓸모없는 코드의 반복을 줄인다.

4. BFS, DFS 사용

그래프 자료 구조에서 너비 우선 탐색(BFS, Breadth First Search)와 깊이우선탐색

profile
공부와 일상

0개의 댓글