완전탐색 (Exhaustive Search)

Happhee·2022년 2월 5일
0

Coding Test Concepts

목록 보기
3/6
post-thumbnail

📍 완전탐색 알고리즘이란?

완전탐색모든 경우의 수를 다 체크해서 정답을 찾는 방법이다
즉, 하나부터 열까지 가능한 모든 것을 다 해보겠다는 것이다

하지만, 기본적인 2가지 규칙을 지켜야만 한다

  1. 문제를 해결할 수 있는가?
  2. 효율적인 방법으로 동작하는가?

📍 완전탐색 활용 방법

  1. 해결하고자 하는 문제의 경우의 수를 대략적으로 파악한다
  2. 가능한 모든 방법을 생각한다
  3. 실제 문제를 해결할 수 있는지 적용해본다

여기서 가능한 모든 방법이란

Brute Force

  • 반복 / 조건문을 활용

순열

  • n개의 원소 중 r개의 원소를 중복 허용 없이 나열하는 방법

재귀 호출

  • 자기 자신을 호출하여 다음 경우의 수로 넘겨 전체 코드를 짧게 줄일 수 있는 방법
    단, 재귀를 탈출하기 위한 조건 + 현재 함수의 상태를 저장하는 Parameter + Return문 을 신경쓰는 것이 중요하다

비트 마스크

  • 2진수 표현 기법을 활용
    & | ~ ^ >> << 연산을 활용하여 진행한다

  • 각각의 원소가 포함되거나, 포함되지 않는 두 가지 선택으로 구성되는 경우 유용하게 사용될 수 있다. 즉, 비트 마스크를 통해, 해당 원소가 포함되어있는지를 검사하여 문제를 해결할 수 있을 것이다.

BFS, DFS

  • 너비 우선 탐색과 깊이 우선 탐색
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글