본문 바로가기
🌱 Computer Science/Programming

[알고리즘] 브루트포스(brute force)

by 카프리썬_ 2021. 6. 10.
728x90

브루트포스(brute force)

무식하게 푸는 방법. 완전탐색으로도 불리기도 하는데

문제를 해결하기 위해 가능한 모든 경우의 수를 계산해서 문제를 해결하는 방법이다. 

 

모두 탐색해서 결과를 찾기 떄문에 100% 정답을 찾는다. 다만 모두 탐색해서 시간이 오래걸린다.

 

자료구조에 따라 2종류로 나뉜다

  • 선형구조일 경우 순차탐색
  • 비선형구조일경우 BFS,DFS

일단 선형구조일때를 먼저 살펴보자. 

<문제해결방법>

  1. 주어진 문제를 '선형구조'로 구조화한다
  2. 구조화된 문제로 해를 구성할때까지 '순차탐색'한다.
  3. 탐색한 해를 주어진 문제의 출력형식에 맞게 정리한다. 

 

언제사용하나?

데이터의 범위가 크지 않을경우 권장한다. 

데이터의 범위가 크면 모든 경우의 수를 탐색하는데 시간이 오래걸리기 떄문이다.

 

사실 내가 코드를 짜는 대부분의 경우가 브루트포스일 것이다. 그냥 노가다..

하지만 시간상 비효율적이라고 해도 복잡한 방법으로 푸는것보다 이렇게 단순하게 푸는것도 하나의 방법이 될 수 있다

 

 

프로그래머스 대표문제

 

2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색1-모의고사

2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색2-소수찾기

2021.05.26 - [Python] 코딩테스트 고득점Kit | 완전탐색3-카펫

 

 

출처 참고

https://hcr3066.tistory.com/26

 

알고리즘 기법[전체 탐색] - 브루트 포스(brute force)

암호학에서의 브루트 포스(brute force attack)가 아닌 알고리즘의 브루트 포스(brute force search)에 관한 것을 작성한다. 브루트 포스(brute force) brute: 무식한, force: 힘  무식한 힘으로 해석할 수 있다...

hcr3066.tistory.com

 

반응형