brute-force
모든 경우의 수를 다 해보는 것.
예를 들어, 비밀번호가 4가지이고, 숫자로만 이루어져 있으면
0000~9999까지 전부다 입력해보면 됨
경우의 수는 10,000가지.
다른 예제를 보자.
예를 들어, 비밀번호가 12자리이고, 숫자로만 이루어져 있으면
00000000000~ 999999999999
1조개.
실제로 구현을 하게되면,
경우의 수를 다 해보는데 걸리는 시간이 문제의 시간제한을 넘지 않아야 한다.
1초 : 1~10억번 연산
실제 브루트 포스 할 수 있는거는 백만에서 천만정도
브루트포스로 문제 풀려면
문제의 가능한 경우의 수를 계산. : 가지수
-> 10000가지
가능한 모든 방법을 다 만들어봄 : 코딩
-> 0000~9999까지 포문 돌리기
각각의 방법을 이용해 답을 구하기.
문제의 가능한 경우의 수를 계산해본다.
직접 계산을 통해 구하기. 손으로 계산 가능.
가능한 모든 방법 다 만들기.
하나도 빠짐 없이 만들기
대표적으로 그냥 다 해보는 방법, for문 / 순열 / 재귀호출 / 비트마스크 사용
순서가 중요할 때 순열 사용.
각 방법을 이용해 답을 구한다.
문제에 나온 대로 답을 계산
브루트 포스 시간 복잡도는 O(경우의 수 방법 1개를 시도해보는데 걸리는 시간 복잡도) 즉, 2번에 걸리는 시간 3번에 걸리는 시간.
Last updated
Was this helpful?