코딩하는 문과생

[알고리즘 공부] 완전탐색(Brute Force - 브루트 포스) 본문

프로그래밍/알고리즘 공부

[알고리즘 공부] 완전탐색(Brute Force - 브루트 포스)

코딩하는 문과생 2019. 11. 18. 15:42

완전탐색 (Brute-Force)

 

BP라고 불리는 완전탐색은 말 그대로 모든 경우의 수를 다 해보는 것!

알고리즘을 풀 때 강력한 방식이지만, 시간은 최대로 들어간다.

 

예를 들어 비밀번호가 4자리이고 숫자로만 이루어져 있다면, 0~9999까지 총 10,000가지의 경우의 수가 발생한다.

만약 한 숫자 당 1초가 걸린다면, 10,000초 = 2.7시간 정도 걸린다. 

 

완전탐색을 풀기 위한 대표적인 4가지

1. for문 사용

2. 순열, 조합 사용

from itertools import permutations
per = permutations(['빨','주','노','초'],2)

from itertools import combinations
com = combinations('1234',2) 

3. 재귀함수 사용

4. 비트마스크 사용