1) 브루트 포스란?
브루트 포스라는 말은
브루트(Brute) - 무식한 + 포스(Force) - 힘
라는 뜻을 가지고 있다. 즉 얻을 수 있는 모든 결과 값을 확인해 가면서 탐색을 하는 알고리즘을 뜻한다.
브루트 포스 알고리즘은 해가 하나 이상은 존재한다는 가정을 세운 뒤에 모든 범위를 탐색하기 때문에 정답을 확실히 찾을 수 있다.
2) 브루트 포스의 장점
단순히 전체를 탐색을 하기 때문에 설계를 하고 구현을 하기 쉽다.
3) 브루트 포스의 단점
전체를 탐색을 하기 때문에 알고리즘의 실행 시간이 매우 오래 걸린다.
탐색을 할 때 메모리나 이런 부분에서 비 효율적이다.
4) 브루트 포스를 구현하는 법
알고리즘을 구성을 할 때 전체 결과에 대해서 탐색을 한다. 즉 각각의 모든 결과를 탐색할 수 있는 알고리즘을 작성을 하면 된다. 단순하게 for문 같은 반복문을 이용해서 전체 결과를 확인해도 된다. 또한 관련된 식의 공식을 사용하는 등 시간을 단축시키는 방법을 사용해서 작성을 해도 용이하다.
'프로그래밍 > 알고리즘' 카테고리의 다른 글
누적합(Prefix Sum) 알고리즘 (0) | 2023.05.31 |
---|---|
Lower bound, Upper bound 알고리즘 (0) | 2023.05.15 |