브루트포스

사요·2021년 9월 29일
0

알튜비튜

목록 보기
6/16

모든 사진 자료에 관한 출처는 아래 알튜비튜 - 튜터링에 있음을 밝힙니다.
https://github.com/Altu-Bitu/Notice

👾브루트포스

# 무식하게 풀기

  • 단순히 가능한 모든 경우를 찾는 기법
  • 테스트 케이스의 크기에 따라 소요 시간이 엄청나게 커질 수 있음
  • 하지만, 떠올리기 가장 쉬운 방법이므로 문제를 풀때 가장먼저 고려해야하는 방법이기도함.
  • 입력범위와 시간복잡도를 잘 고려하여 선택하는것이 중요.

💫특징

"100,000,000 "

▶ 총 연산수가 약 1억회 이하인경우, 충분히 브루트 포스로 접근가능.
연산수 = 모든 경우의 수 * 각 경우의 연산 횟수
▶ 실제와는 거리가 있지만, 대략적인 브루트 포스 가능 기준으로 잡으면 유용.
반복문, 비트마스크, 순열, 재귀함수 등으로 접근

📜마무리

  • 모든 경우의 수를 다해보는 브루트 포스
  • 입력범위가 커지는 만큼, 시간초과의 위험이 있음(즉, 효율적인 방법은 아님)
  • 그래도 비교적 떠올리기 쉽다
  • 따라서, 연산의 횟수가 1억회 이하라면 일단 시도해보자.
  • 설마가 사람잡는다..

✨이것도 알아보세요!

  • 브루트포스를 재귀함수로 구현해보아요(종료조건 중요)
  • next_permutation과 비트마스크에 대해서도 알아보아요(백트래킹 문제에서 많이 사용)
profile
하루하루 나아가는 새싹 개발자 🌱

0개의 댓글