brute(무식한) force(힘) = 무식한 힘
"완전탐색 알고리즘"으로 가능한 모든 경우의 수를 다 탐색하면서
요구 조건에 충족한 결과만을 가져오는 알고리즘
선형 구조를 전체적으로 탐색하는 "순차 탐색"
- 주어진 문제를 선형 구조로 구조화
- 구조화된 문제공간을 적절한 방법으로 해를 구할 때까지 탐색
- 구성된 해를 정리
비선형 구조를 전체적으로 탐색하는 "깊이 우선 탐색(Depth First Search)"과 "넓이 우선 탐색(Breadth First Search)" 들이 가장 기본적 (DFS, BFS는 따로 다룰 예정)
대표 예제
10의 약수의 합을 구하기
- 주어진 문제를 선형 구조로 구조화
- { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
- 구조화된 문제공간을 적절한 방법으로 해를 구할 때까지 탐색
- 구조화된 자료가 선형구조 이므로 순차 탐색을 이용
- i % 10 == 0 으로 10의 약수인지 확인
- 구성된 해를 정리
거스름돈을 지불할 수 있는 방법의 수와 최소 동전의 개수 구하기
주의 ⛔️
숫자가 커지면서 문제 발생
>> 시간 측면에서 매우 비효율적
출처: https://hcr3066.tistory.com/26
알고리즘 기법[전체 탐색] - 브루트 포스(brute force)
암호학에서의 브루트 포스(brute force attack)가 아닌 알고리즘의 브루트 포스(brute force search)에 관한 것을 작성한다. 브루트 포스(brute force) brute: 무식한, force: 힘 무식한 힘으로 해석할 수 있다...
hcr3066.tistory.com
출처: https://steemit.com/kr-dev/@gyeryak/easyalgo-2-bruteforce
'코딩테스트를 위한 알고리즘' 카테고리의 다른 글
트리 순회 (0) | 2022.02.02 |
---|---|
트리 (0) | 2022.01.26 |
큐 (0) | 2022.01.25 |
스택 (0) | 2022.01.25 |
그리디 예제 3 - 1이 될 때까지 (0) | 2022.01.21 |