브루트 포스는 컴퓨터 알고리즘 중 하나로, 가능한 모든 경우의 수를 일일이 검사하여 원하는 결과를 도출하는 방법을 말한다. 이 방법은 가장 직관적이고 단순하지만, 경우의 수가 많은 문제에서는 처리 시간이 매우 길어질 수 있다. 따라서 브루트 포스는 대개 다른 알고리즘과 함께 사용되며, 입력값이 매우 작다던지 특정한 조건에서만 사용된다.
만약 암호가 4자리의 숫자이고, 각 자리가 0~9의 수 중 하나인 경우, 가능한 암호의 수는 10,000개이다. 이 경우 브루트 포스를 사용하여 모든 경우의 수를 일일이 검사하여 암호를 찾을 수 있다.
비트를 이용하여 집합을 표시
컴퓨터는 기본적으로 이진수를 활용하기에 매우 빠른 연산 속도를 보여줌, 메모리 사용량 감소, 간결한 코드 작성
예를 들어 1,6,7번의 성질이 존재한다면 11000010(2) = 194(10)으로 표현
비트 연산
원소 추가(p번 비트를 on)
cur = cur | (1 << p)
원소 삭제
cur = cur & ~(1 << p)
원소 토글 (1→0, 0→1)
cur = cur ^ (1 << p)
공집합
cur = 0
전체 집합
cur = 63