브루트 포스

브루트 포스(BruteForce) 알고리즘은 모든 경우의 수를 다 확인하는 알고리즘이다. 해가 본재할 것으로 예상되는 모든 영역을 전부 탐색하는 방법이므로 시간&공간 복잡도가 높은 편에 속한다.

대신 알고리즘을 설계하고 구현하기 쉽고, 이 방식으로 절대 답을 못 구하는 경우는 없으므로 나름 강력한 방법이다.

예시

image.png

위와 같은 자물쇠의 비밀번호를 입력했을때 해당 비밀번호는 다음과 같이 찾을 수 있다.

#include <iostream>

int main() 
{
	int P1 = 0, P2 = 0, P3 = 0, P4 = 0;
	std::cin >> P1 >> P2 >> P3 >> P4;

	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 == P1 && j == P2 && k == P3 && l == P4)
						std::cout << "비밀번호는 : " << P1 << " " << P2 << " " << P3 << " " << P4;
				}
			}
		}
	}
	
	return 0;
}
0 9 6 3
비밀번호는 : 0 9 6 3