코딩 테스트 유형보기 3 - 브루트 포스
2022. 6. 16. 08:13ㆍ프로그래밍 언어/코딩테스트준비
유형보기 3 - 브루트 포스
브루트 포스
출처
브루트 포스 ( Brute-Force, 완전탐색)
완전 탐색법이라고도 불리는 브루트포스 알고리즘은 무차별 대입법이라고도 하는데,
가능한 모든 경우의 수를 구하고 답을 찾아내는 알고리즘을 의미한다.
파이썬에서 브루트 포스를 구현하려면 모든 경우의 수를 만들수 있어야함.
이러한 경우의 수를 만들어주는 것은 itertools 모듈의 product 함수이다.
itertools 모듈에는 여러 조합을 만드는 방법이 있지만 브루트포스 프로그램에서는 product를 사용
product 모듈 사용방법
# A : 조합을 만들 소스
# B : 원하는 조합의 자릿수
list = product(A, repeat=B)
예시
import time
from itertools import product
password = "world1"
number = "0123456789"
lowercase = "abcdefghijklmnopqrstuvwxyz"
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
symbol = "!@#$%^&*()_+-=`~"
possibility = lowercase + number
attempt = product(possibility, repeat=len(password))
start = time.time()
def run():
for i in attempt:
if "".join(i) == password:
print("비밀번호 : " + str("".join(i)))
print("소요시간 : " + str(time.time() - start))
run()
'프로그래밍 언어 > 코딩테스트준비' 카테고리의 다른 글
코딩 테스트 단계별 공부 1 - 재귀 (0) | 2022.06.16 |
---|---|
코딩 테스트 유형보기 2 - DFS / BFS (0) | 2022.06.15 |
코딩 테스트 유형보기 1 - 자료구조 (0) | 2022.06.15 |
코딩테스트 준비 - 3 (0) | 2022.05.20 |
코딩테스트 준비 - 2 (0) | 2022.05.15 |