본문 바로가기

알고리즘

[코스모스 2주차] 브루트포스 알고리즘 Brute Force Algorithm

브루트 포스 알고리즘이란 이름 그대로 무식한 힘으로 가능한 모든 경우의 수를 탐색하면서 요구조건에 충족되는 결과만을 가져오게 된다. 따라서 무조건 정답만을 출력하게 된다는 장점이 있다. 아는 구현도 매우 간단하고 복잡한 알고리즘 없이 빠른 구현이 가능하나, 실행시간이 매우 오래걸리고 메모리 효율 측면에서 매우 비효율적이라는 단점이 있다. 

 

푸는 방법의 대부분은 반복문과 조건문을 통해서 답을 도출하게 된다. 재귀도 사용할 수 있다. 

문제의 조건은 문제를 해결할 수 있는 풀이의 수가 제한이 되어있어야 한다.

 

다음은 이번 주 브루트포스 과제였던 '수학은 비대면강의입니다'이다. 

이는 연립방정식, 브루트 포스 방식으로 풀 수 있으나 브루트 포스 문제로 풀게 된다면 다음과 같은 코드로 짤 수 있다. 

 

가능한 i와 j의 조합을 for문으로 모두 확인하면서 직접 방정식에 대입해보아 조건에 맞는 i와 j를 출력하는 방식이다.