상황극:
추운 겨울이 지나 날씨가 따뜻해지고 밖에 꽃들이 아름답게 피었을 때 인만이는 자전거를 타고 천변길을 거닐려고 한다. 그런데 자전거 잠금장치를 까먹었다....?
만약 당신이라면 어떻게 하겠는가?
0000부터 일일이 맞춰봐서 찾지 않겠는가?
이렇게 해결하는 알고리즘이 브루트포스(brute force) 알고리즘(완전탐색 알고리즘)이다.
영어로 brute는 "짐승 같은, 난폭한"이라는 뜻이다.
이 알고리즘은 정말 무식하게 모든 경우의 수를 탐색한다.
그렇다면 어떤 특징이 있을까?
- 아까 자전거 잠금장치를 푸는 인만이는 시간은 오래 걸릴지 몰라도 결국
잠금장치를 해제할 수 있다. 모든 경우의 수를 다 탐색하기에 정확도가 100%라는 특징이 있다.(아주 강력한 특징이다.)- 하지만 인만이가 0000부터 맞춰보기 시작하는데 비밀번호가 9999일 경우와 같이 시간이 진짜 오래 걸릴 수 있다.
- 또한 잠금장치 자릿수가 5개,6개,7개 등등 조금이라도 문제가 복잡해지면 경우의 수가 많아서 매우 비효율적이 된다.