[알고리즘] Brute force (브루트 포스)

2021. 1. 10. 08:54·알고리즘

Brute force 

: 무식한 힘

 

- 완전 탐색 알고리즘 : 가능한 모든 경우의 수를 탐색하여 요구조건에 충족되는 결과만을 가져온다.

 

장: 단순한 알고리즘으로 쉽게 구현 가능, 정확성 100%

단: 모든 경우를 탐색하여 시간 효율성이 떨어진다.

 

예시) N={a, b, c}에서 a가 들어가는 N의 부분 집합을 구할 때, 일단 N의 전체 부분 집합을 구한다

{a}, {b}, {c}, {ab}, {bc}, {ac}, {abc} 이중에서 a를 포함하는 부분집합만 골라 선택한다.

 

완전탐색 알고리즘 사용 전 고려사항

  1. 가능한 경우의 수를 대략적으로 계산
  2. 가능한 모든 방법 고려
  3. 적용

 

완전탐색 알고리즘 구현 방식

  1. Brute Force 기법 - 경우의 수 모두 테스트
  2. 순열 (Permutation) - n개의 원소중에서 r개의 원소를 중복 허용 없이 나열
  3. 재귀 호출 & 백트랙킹
  4. 비트마스크
  5. BFS, DFS

'알고리즘' 카테고리의 다른 글

[백준] 2231 : 분해합 <JAVA>  (0) 2021.01.13
[백준] 7568 : 덩치 <JAVA>  (0) 2021.01.12
[백준] 11729 : 하노이 탑 이동 순서 <JAVA>  (0) 2021.01.08
[백준] 2447 : 별 찍기 <JAVA>  (0) 2021.01.08
[백준] JAVA : 재귀함수1 < 팩토리얼 & 피보나치>  (0) 2021.01.05
'알고리즘' 카테고리의 다른 글
  • [백준] 2231 : 분해합 <JAVA>
  • [백준] 7568 : 덩치 <JAVA>
  • [백준] 11729 : 하노이 탑 이동 순서 <JAVA>
  • [백준] 2447 : 별 찍기 <JAVA>
HBean_
HBean_
백엔드 개발자의 개발 로그 💻
  • HBean_
    개발_log
    HBean_
  • 전체
    오늘
    어제
    • 전체 (103)
      • WEB (49)
        • Spring (14)
        • AWS EC2 (6)
        • DB (3)
        • 2020_webCamp (25)
        • JPA (1)
      • Devops (2)
      • 보안 (4)
      • Git (6)
      • JAVA (13)
      • 자료구조 (2)
      • 알고리즘 (11)
      • 네트워크 (2)
      • SStudy (2)
      • 실전프로젝트2 (4)
      • 개발 일기 (1)
      • 개발툴 (4)
      • Intellij (2)
      • 이슈 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    인텔리제이
    톰캣
    플러그인
    웹
    IntelliJ
    tomcat
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
HBean_
[알고리즘] Brute force (브루트 포스)
상단으로

티스토리툴바