이것저것

Brute force 본문

Algorithm

Brute force

nays111 2021. 1. 7. 00:53

모든 경우를 다 해본다

= 모든 방법을 다 한번씩 시도해본다.

가능한 방법의 개수(경우의 수)를 새봐야한다

방법의 개수가 많지 않을 때만 사용 가능하다.

  1. 방법의 수를 새본다.
  2. 새보고 시간 제한을 넘지 않을 것 같은 경우만 사용

<단계>

  1. 문제의 가능한 경우의 수를 계산해본다.
    • 직접 계산을 통해서 구한다. 대부분 손으로 계산
  2. 가능한 모든 방법을 다 만들어본다.
    • 하나도 빠짐없이 만들어야한다.
    • 대표적으로 그냥 다 해보는 방법, for문 사용, 순열 사용, 재귀호출사용, 비트마스크 사용이 있다.
  3. 각각의 방법을 이용해 답을 구해본다.

경우의 수

  • N 명의 사람이 한줄로 서는 경우의 수 → N!
  • N 명의 사람 중에서 대표 두명을 뽑는 경우의 수 → (N)(N-1)2
  • N 명의 사람 중에서 반장 1 부반장 1을 뽑는 경우의 수 (N)(N-1)
  • N 명의 사람 중 , 각 사람이 영화를 볼지, 보지않을지 결정. 가능한 조합의 → 2^N

그냥 다 해보기

'Algorithm' 카테고리의 다른 글

Set / Map  (0) 2021.01.08
Priority Queue (우선순위큐)  (0) 2021.01.08
소수 (에라토스테네스의 체)  (0) 2021.01.07
유클리드 호제법  (0) 2021.01.07
Greedy Algorithm  (0) 2021.01.07
Comments