본문 바로가기
프로그래밍, 알고리즘 (Algorithm)

억지기법(brute force) 이란? 억지기법 알고리즘 쉬운설명

by 뉴디라 2023. 3. 29.

1. 억지기법(brute force)이란?

가능한 모든 경우를 시도해 보는 방법으로, 문제를 해결하는 데 사용되는 알고리즘입니다.

이름(brute force:무식한 힘)에서 알 수 있듯이 무식하게 모든 경우를 하나하나 시도해 보는 알고리즘입니다. 

가능한 모든 경우를 시도해 보면서 최적의 해결책을 찾는 데 사용됩니다. 이를 통해, 문제를 해결할 수 있는 모든 가능성을 조사하고, 그 중에서 가장 적합한 해결책을 찾을 수 있습니다.

 

 

2. 억지기법의 장단점 

억지기법의 장점은 모든 가능한 경우를 시도해 보기 때문에 최적의 해결책을 찾을 수 있다는 것입니다. 또한, 구현이 간단하고, 경우에 따라 효과적일 수 있습니다.

억지기법의 단점은 경우의 수가 많아질수록 시간과 자원이 매우 많이 소비될 수 있습니다. 

 

 

3. 억지기법의 활용 분야

억지기법은 주로 암호 해독, 패턴 인식 등의 분야에서 활용됩니다.

암호 해독에서는, 암호화된 정보를 복호화하여 원본 정보를 찾아내는 데 사용됩니다. 이 때, 억지기법은 가능한 모든 조합을 시도하여 복호화 키를 찾아내는 데 활용됩니다. 그러나 암호화 기술이 발전하여 보안 수준이 높아지면서, 억지기법을 이용한 암호 해독은 점차 어려워지고 있습니다.

패턴 인식에서는, 이미지, 음성 등의 데이터에서 특정 패턴을 인식하는 데 사용됩니다. 이 때, 억지기법은 가능한 모든 패턴을 시도하여 일치하는 패턴을 찾아내는 데 활용됩니다. 그러나 경우의 수가 많아질수록 시간과 자원이 매우 많이 소비되기 때문에, 보다 효율적인 알고리즘을 사용하는 것이 더욱 바람직합니다.

 

 

4. 억지기법의 예시 코드

다음은 억지기법의 예시 파이썬 코드 입니다.

1부터 100까지의 모든 자연수의 합을 구하는 문제이며, 억지기법은 반복문을 이용해 1부터 100까지의 모든 값을 하나씩 더해서 저장하는 방식입니다.

sum = 0
for i in range(1, 101):
    sum += i
print(sum)

이러한 방식은 자연수의 개수가 적을 때에는 문제가 되지 않지만, 수의 범위가 커지면 처리 시간이 급격히 증가하게 됩니다.

 

 

5. 억지기법이 중요한 이유

억지기법이 중요한 이유는 어떤 문제에서도 항상 사용할 수 있기 때문입니다. 또한, 경우에 따라 효과적일 수 있으며, 병렬 처리나 GPU 등의 기술을 사용하여 성능을 향상 시킬 수 있습니다. 그러나 경우의 수가 많을수록 시간과 자원이 많이 소비되기 때문에, 보다 효율적인 알고리즘을 사용하여 해결할 수 있는 경우에는 억지기법 대신 그러한 알고리즘을 사용하는 것이 더욱 바람직합니다. 하지만, 이런 효율적인 알고리즘을 고안해 낼 때도 억지기법이 생각의 출발점이 될 수 있습니다. 

댓글