Brute : 무식한
Force : 힘
직역하면, 무식한 힘을 갖는 알고리즘이란 뜻으로, 가능한 모든 경우의 수를 모두 탐색하면서 결과를 도출한다.
전체를 탐색한다는 의미에서 전체 탐색, 완전 탐색이라고도 한다.
브루트포스 알고리즘은 대부분은 반복문과 조건문을 통하여 답을 도출
한다.
비선형 구조는 추후 별도로 포스팅 하겠습니다.
위와 같은 자물쇠를 다들 본적 있으리라 생각한다.
해당 비밀번호를 찾아보는 간단한 예제를 들어보려고 한다.
비밀번호는 내가 입력하는 방식으로 했다.
import java.util.Scanner;
public class BruteForce {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
int d=sc.nextInt();
for (int i=0;i<10;i++){
for (int j=0;j<10;j++){
for (int k=0;k<10;k++){
for (int l=0;l<10;l++){
if (i==a&&j==b&&c==k&&d==l){
System.out.println("비밀번호는 "+i+j+k+l);
}
}
}
}
}
}
}
0000부터 9999까지 4자리 수를 모두 탐색해서 비밀번호를 찾았다.
결론 : 값을 무조건 찾긴 하지만 시간이 오래 걸리므로 적절하게 사용하자.